媒体播放器-MediaPlayer

Android 的多媒体框架支持各种常见的多媒体类型,对于音频视频的支持均需要使用到MediaPlayer类。

一、获取MediaPlayer对象的两种方式:

1、MediaPlayer player=new MediaPlayer();

2、MediaPlayer player=MediaPlayer.create(Context context,int resid);//不用调用setDataSource()设置资源。

二、设置要播放的文件:

1、应用中自带的资源

例如:MediaPlayer player=MediaPlayer.create(Context context,int resid);

2、存储在SD卡或其他文件路径下的资源

例如:player.setDataSource("sdcard/emulated/0/video.mp4");

3、从网络上获取资源

player.setDataSource(http://vt1.doubanio.com/201806051925/5a95ce9e62a5473be84dfbaa1b69302b/view/movie/M/402300072.mp4);


MediaPlayer的setDataSource一共四个方法:
setDataSource (String path) 
setDataSource (FileDescriptor fd) 
setDataSource (Context context, Uri uri) 
setDataSource (FileDescriptor fd, long offset, long length)
 
其中使用FileDescriptor时,需要将文件放到与res文件夹平级的assets文件夹里,然后使用:
AssetFileDescriptor fileDescriptor = getAssets().openFd("rain.mp3");
m_mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());

来设置datasource


三、MediaPlayer的主要方法:

  • void statr():开始或恢复播放。
  • void stop():停止播放。
  • void pause():暂停播放。 
  • int getDuration():获取流媒体的总播放时长,单位是毫秒
  • int getCurrentPosition():获取当前流媒体的播放位置,单位毫秒
  • void seekTo(int msec):设置当前MediaPlayer的播放位置,单位是毫秒
  • void setLooping(boolean looping):设置是否循环播放。
  • void isPlaying():判断是否正在播放
  • void prepare():同步方式装在流媒体文件
  • void prepareAsync():异步方式装在流媒体文件
  • void release():回收流媒体文件
  • void setAudioStreamType(int streamtype):设置播放流媒体类型。
  • void setWakeMode(Context context,int mode):设置CPU唤醒状态
  • void setNextMediaPlayer(MeidaPlayer next):设置当前流媒体播放完毕,下一个播放的MediaPlayer          

 除了以上方法,MediaPlayer还提供了一下几个事件的回调方法setOnCompletionListener(MediaPlayer.OnCompletionListener listener):当流媒体播放完毕的时候回调。

  • setOnCompletionListener(MediaPlayer.OnCompletionListener listener):当流媒体播放完毕的时候回调。
  • setOnErrorListener(MediaPlayer.OnErrorListener listener):当播放中发生错误的时候回调。
  • setOnPreparedListener(MediaPlayer.OnPreparedListener listener):当装载流媒体完毕的时候回调。
  • setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener listener):当使用seekTo()设置播放位置的时候回调。
参考:https://blog.csdn.net/u011558902/article/details/41013505

猜你喜欢

转载自blog.csdn.net/mahuicool/article/details/80625974