Android 如何调用MediaPlayer播放视频
使用MediaPlayer播放音视频的最简单实例:
- <span style="font-size:18px;">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();
- }
- }</span>
布局文件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)