Android 如何调用MediaPlayer播放视频[状态机]【图】
16lz
2021-01-23
Android 如何调用MediaPlayer播放视频
使用MediaPlayer播放音视频的最简单实例:
布局文件main.xml:
程序说明:
第一:MediaPlayer有多重构造函数,满足各种视频的播放
第二:设置数据源,部分构造函数已经设置数据这一步可以跳过
第三:对播放器的主要控制方法:
第四:设置播放器的监听器:
MediaPlayer提供了播放完成监听和错误监听,以及时处理特殊逻辑。确保播放器的鲁棒性。
使用MediaPlayer播放音视频的最简单实例:
public class MediaPlayerDemo extends Activity { private Button mBtnPlay, mBtnPause, mBtnStop; private MediaPlayer mPlayer = new MediaPlayer(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mBtnPlay= (Button)findViewById(R.id.play); mBtnPause= (Button)findViewById(R.id.pause); mBtnStop= (Button)findViewById(R.id.stop); mBtnPlay.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { try { mPlayer.setDataSource("/mnt/sdcard/love.mp3"); mPlayer.prepare(); mPlayer.start(); } catch (IOException e) { e.printStackTrace(); } mPlayer.setOnCompletionListener(new OnCompletionListener(){ @Override public void onCompletion(MediaPlayer mp) { mPlayer.release(); } }); } }); mBtnPause.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { if(mPlayer != null){ mPlayer .pause(); } } }); mBtnStop.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { if(mPlayer != null){ mPlayer.stop(); } } }); } @Override protected void onDestroy() { if(mPlayer != null) mPlayer.release(); super.onDestroy(); }}
布局文件main.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:text="play" android:id="@+id/play" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="pause" android:id="@+id/pause" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="stop" android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button></LinearLayout>
程序说明:
第一:MediaPlayer有多重构造函数,满足各种视频的播放
- URI方式,URI可以使本地地址或网络地址
- 类似URL方式,多一个SurfaceHolder
- 资源ID方式. 例如:MediaPlayer player = MediaPlayer.create(this, R.raw.test);
- 空构造函数
第二:设置数据源,部分构造函数已经设置数据这一步可以跳过
- setDataSource (String path);
- setDataSource (FileDescriptor fd);
- setDataSource (Context context, Uri uri);
- setDataSource (FileDescriptor fd, long offset, long length);
第三:对播放器的主要控制方法:
- Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:
- prepare() 播放器进入prepare状态;
- start() 播放器进入play状态
- pause() 播放器进入pause状态
- stop() 播放器进入stop状态
- seekTo() 播放器定位到某个播放位置是定位方法
- release() 播放器释放占用的资源
- reset() 播放器从Error状态恢复
第四:设置播放器的监听器:
MediaPlayer提供了播放完成监听和错误监听,以及时处理特殊逻辑。确保播放器的鲁棒性。
- setOnCompletionListener(MediaPlayer.OnCompletionListener listener)
- setOnErrorListener(MediaPlayer.OnErrorListener listener)
更多相关文章
- C语言函数以及函数的使用
- 使用程序创建Android桌面快捷方式
- Android通过http协议POST传输方式
- Android Studio中如何隐藏顶部状态栏和标题栏
- Android中去除标题,全屏,获得屏幕方向及键盘状态
- Android 自动编译、打包生成apk文件 3 - 使用SDK Ant方式