您的位置:首页 > 移动开发 > Android开发

Android MediaPlayer视频播放详情

2016-03-18 13:38 656 查看
Android MediaPlayer详解

MediaPlayer定义:

 
MediaPlayer的底层是基于OpenCore(PacketVideo)库实现的Audio和video播放功能,上层还包含了通过Binder机制实现的进程间通讯等内容;Music和Video在Android的界面中都通过调用MediaPlayer实现。

MediaPlayer特点:

1、Android通过控制播放器的状态
4000
的方式来控制媒体文件的播放。
2、MediaPlayer配置播放资源方式多样:
如1:播放用户再应用中自带的资源文件(res/raw/)
 
      MediaPlayer.create(this, R.raw.test);
如2:不论是播放网络资源文件,还是SDK资源文件或者其他资源文件均采用:

 
mediaPlayer.setDataSource(Context, uri);  
网络:mediaPlayer.setDataSource("http://www.citynorth.cn/music/confucius.mp3");

SDK资源文件:mediaPlayer.setDataSource("/sdcard/test.mp3");

MediaPlayer常用方法:

setDataSource(FileDescriptor
fd, long offset, long length);// 原始资源文件(assets): 
setDataSource
(FileDescriptor fd);// 原始资源文件(assets): 

setDataSource(String);// 存储上的音频资源文件(sdcard):
setDataSource(Context,
uri);// 播放网络上的音频文件:
Mediaplayer:构造方法
create:        创建一个要播放的多媒体
getCurrentPosition:得到当前播放位置
getDuration:    得到文件的时间
prepare:    准备(同步)
prepareAsync:准备(异步)
seekTo:        指定播放的位置(以毫秒为单位)
setAudioStreamType:    设置流媒体的类型
setDataSource:    设置数据来源
setDisplay:       
设置用SurfaceHolder来显示多媒体
setOnBufferingUpdateListener:    网络流媒体的缓冲监听
setOnErrorListener:            设置错误信息监听
setOnVideoSizeChangedListener:视频尺寸监听
setScreenOnWhilePlaying:        设置是否使用SurfaceHolder来显示
setVolume:                    设置音量
//获取sd卡上的音频文件
setDataSource(“/sdcard/test.mp3”);
//装载资源中的音乐
MediaPlayer.create(Activity01.this,R.raw.test);
//目前存在问题,不能循环解析出音频文件
原因:.android_secure文件夹受保护,无法获取里面的文件信息

播放视频
相关类:VideoView
方法说明:
getBufferPercentage:得到缓冲的百分比
getCurrentPosition:得到当前播放位置
getDuration:得到视频文件的时间
resolveAdjustedSize:调整视频显示大小
setMediaController:设置播放控制器模式(播放进度条)
setOnCompletionListener:当视频文件播放完时触发事件
setVideoPath:设置视频源路径
setVideoURI:设置视频源地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息