在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容。也知道VideoView内部封装的就是MediaPlayer,本文就介绍如何使用MediaPlayer播放视频。
一、简介
MediaPlayer是Android中的一个多媒体播放类,其提供的API能满足简单的大部分音视频的播放需求。
下面简单介绍一下MediaPlayer:
- MediaPlayer是使用Surface进行视频的展示的。
- MediaPlayer只支持mp4、avi、3gp格式的视频,支持格式相对单一。
- MediaPlayer可以播放网络视频,支持的网络视频的协议为:Http协议和RTSP协议两种。
二、MediaPlayer 使用方法
MediaPlayer 的提供的方法如下:
- void setDataSource(String path) :通过一个具体的路径来设置MediaPlayer的数据源,path可以是本地的一个路径,也可以是一个网络路径
- void setDataSource(Context context, Uri uri): 通过给定的Uri来设置MediaPlayer的数据源,这里的Uri可以是网络路径或是一个ContentProvider的Uri。
- void setDataSource(MediaDataSource dataSource) :通过提供的MediaDataSource来设置数据源
- void setDataSource(FileDescriptor fd): 通过文件描述符FileDescriptor来设置数据源
- int getCurrentPosition() :获取当前播放的位置
- int getAudioSessionId() :返回音频的session ID
- int getDuration() :得到文件的时间
- TrackInfo[] getTrackInfo() :返回一个track信息的数组
- boolean isLooping (): 是否循环播放
- boolean isPlaying(): 是否正在播放
- void pause () :暂停
- void start () :开始
- void stop () : 停止
- void prepare(): 同步的方式装载流媒体文件。
- void prepareAsync(): 异步的方式装载流媒体文件。
- void reset(): 重置MediaPlayer至未初始化状态。
- void release (): 回收流媒体资源。
- void seekTo(int msec): 指定播放的位置(以毫秒为单位的时间)
- void setAudioStreamType(int streamtype) :指定流媒体类型
- void setLooping(boolean looping) :设置是否单曲循环
- void setNextMediaPlayer(MediaPlayer next) : 当前这个MediaPlayer播放完毕后,MediaPlayer next开始播