android实现横竖屏不间断播放文件

在调用android api播放视频,使用MediaPlayer一文中讲述了利用MediaPlayer播放文件,但是android在横竖屏变换时,其生命周期发生了变换,见:android屏幕切换与生命周期。

要想实现在变换横竖屏时,继续播放之前的文件,就要记录播放文件的时间,在下次播放的时候,从此处开始播放即可。正好MediaPlayer提供这两个方法,利用getCurrentPosition()得到当前播放的毫秒数,利用seekTo(i)播放文件从i毫秒开始播放。从而实现了继续播放文件。

其代码:

package com.easymorse;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
public class androidmp4demo extends Activity {
private String path = "http://dev.mopietek.net:8080/mp4/avi512.mp4";
private VideoView mVideoView;
private static int i = 0;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.videoview);
mVideoView = (VideoView) findViewById(R.id.surface_view);
if (path == "") {
Toast.makeText(
androidmp4demo.this,
"Please edit VideoViewDemo Activity, and set path"
+ " variable to your media file URL/path",
Toast.LENGTH_LONG).show();
} else {
mVideoView.setVideoPath(path);
MediaController controller = new MediaController(this);
mVideoView.setMediaController(controller);
mVideoView.requestFocus();
}
}

@Override
protected void onStart() {
super.onStart();
Log.i("mp4", "@@@ on start");
}

@Override
protected void onResume() {
super.onResume();
mVideoView.seekTo(i);
mVideoView.start();
Log.i("mp4", "@@@ on resume");
}

@Override
protected void onPause() {
super.onPause();
Log.i("mp4", "@@@ on pause");
}
@Override
protected void onStop() {
super.onStop();
mVideoView.pause();
i = mVideoView.getCurrentPosition();
Log.i("mp4", "@@@ on stop");
}
@Override
protected void onDestroy() {
super.onDestroy();
mVideoView.destroyDrawingCache();
Log.i("mp4", "@@@ on destroy");
}
}

源代码见:https://easymorse.googlecode.com/svn/trunk/Mp4Demo

更多相关文章

  1. Android(安卓)虚拟机Dalvik、Android各种java包功能、Android相
  2. Android(安卓)mediaplayer 播放本地音乐文件
  3. Android(安卓)资源,国际化,自适应
  4. 【Android】windows下使用android studio和ndk-build编译c程序生
  5. Gradle in Android(安卓)Studio (1) - 构建系统概述
  6. Android(安卓)Studio 配置模拟器AVD存放路径(默认在c盘,解决c盘空
  7. Android编译环境
  8. Android(安卓)NDK开发(一)——ndk-build编译生成so库文件并使用
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android(安卓)camera2使用
  2. Android一个Adapter的写法
  3. Android编译系统详解 配置文件
  4. Android Http请求框架一:Get 和 Post 请求
  5. android post get
  6. android 根据pid 获取进程名
  7. 常用网址
  8. Android MedaiPlayer类的简单介绍
  9. Android(安卓)开发连接 MySQL 数据库
  10. Java(Android)对文件全文生成MD5摘要