视频开发初步体验 学习笔记
2017-10-10 20:18
204 查看
MediaPlayer
常用方法:
常用方法 | 说明 |
---|---|
create | 创建一个要播放的多媒体 |
getCurrentPosition | 得到当前播放位置 |
getDuration | 得到文件的时间 |
getVideoHeight | 得到视频的高度 |
getVideoWidth | 得到视频的宽度 |
isLooping | 是否循环播放 |
isPlaying | 是否正在播放 |
pause | 暂停 |
prepare | 准备(同步) |
prepareAsync | 准备(异步) |
release | 释放MediaPlayer对象相关的资源 |
reset | 重置MediaPlayer对象为刚刚创建的状态 |
seekTo | 指定播放的位置(以毫秒为单位的时间) |
setAudioStreamType | 设置流媒体的类型 |
setDataSource | 设置多媒体数据来源(位置) |
setDisplay | 设置用SurfaceHolder来显示多媒体 |
setLooping | 设置是否循环播放 |
setOnButteringUpdateListener | 网络流媒体的缓冲监听 |
setOnErrorListener | 设置错误信息监听 |
setOnVideoSizeChangedListener | 视频尺寸监听 |
setScreenOnWhilePlaying | 设置是否使用SurfaceHolder来保持屏幕显示 |
setVolume | 设置音量 |
start | 开始播放 |
stop | 停止播放 |
MediaPlayer各个状态图和生命周期
音频播放步骤:
创建MediaPlayer对象://两种方法 MediaPlayer mediaPlayer = new MediaPlayer(); //如果是调用这个方法,就可以不需要调用setDataSource方法来设置音频文件的路径了。也不需要调用prepare方法了 //因为在源码的create方法内部就调用了setDataSource方法来使用R.raw.test文件来当作音频文件的路径了 MediaPlayer mp = MediaPlayer.create(this, R.raw.test); //部分源码 AssetFileDescriptor afd = context.getResources().openRawResourceFd(resid); if (afd == null) return null; MediaPlayer mp = new MediaPlayer(); final AudioAttributes aa = audioAttributes != null ? audioAttributes : new AudioAttributes.Builder().build(); mp.setAudioAttributes(aa); mp.setAudioSessionId(audioSessionId); mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); afd.close(); mp.prepare(); return mp;
调用setDataSource()方法来设置音频文件路径
//1. //获取网络上的音频,传入一个url链接 try { mediaPlayer.setDataSource("https://......."); } catch (IOException e) { e.printStackTrace(); } //2. //如果想要调用R.raw.test文件作为音频文件的话,可以将R.raw.test读取为AssetFileDescriptor文件 //当然你也可以选择Assets文件里的音频文件 //当然可以选择使用MediaPlayer.create方法来代替这个打开方式 AssetFileDescriptor fileDescriptor = this.getResources().openRawResourceFd(R.raw.test); try { AssetFileDescriptor assetFileDescriptor = this.getAssets().openFd("xx.mp4"); } catch (IOException e) { e.printStackTrace(); } try { mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getLength()); } catch (IOException e) { e.printStackTrace(); } //3. //读取sd卡的文件 try { //mediaPlayer.setDataSource("/sdcard/xx.mp4"); mediaPlayer.setDataSource(Environment.getExternalStorageDirectory().getPath()+ "/xx.mp4" + File.separator +"xx.mp4"); } catch (IOException e) { e.printStackTrace(); }
调用prepare()方法使MediaPlayer进入到准备状态
调用shart方法播放音频
VideoView
常用方法(类比MediaView) | 说明 |
---|---|
canPause | 判断是否能够暂停播放视频 |
canSeekBackward | 判断是否能够倒退 |
canSeekForward | 判断是否能够快进 |
getBufferPercentage | 获得缓冲区的百分比 |
getCurrentPosition | 获得当前的位置 |
getDuration | 获得所播放视频的总时间 |
isPlaying | 判断是否正在播放视频 |
start | 开始播放视频 |
pause | 播放暂停 |
resume | 恢复播放 |
seekTo | 设置播放位置 |
stopPlayback | 停止回放视频文件 |
suspend | 挂起视频文件 |
setMediaController | 设置媒体控制器 |
setOnCompletionListener | 媒体文件播放完毕时调用的回调函数 |
setOnErrorListener | 在设置或播放过程中发生错误时调用的回调函数 |
setOnPreparedListener | 在媒体文件加载完毕,可以播放时调用的回调函数 |
setVideoPath | 设置视频文件的路径名 |
setVideoURI | 设置视频文件的URI |
这是初步使用,只是停留在显示,暂停,停止。然后会以MediaPlayer为主逐步进阶。
thanks相关文章推荐
- Android应用开发学习笔记(2)应用开发初步体验
- AX2009 VS平台报表开发学习笔记(一)--初体验
- 私房库视频学习笔记-小清新BBS系统开发技术归纳三
- ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步
- uClinux学习笔记之三 uClinux驱动开发初步
- Android游戏开发学习笔记(三):视频的播放
- ITCAST视频-Spring学习笔记(搭建与测试Spring的开发环境)
- 由浅入深linux嵌入式ARM开发视频教程学习笔记
- VS 2008 Feature Pack界面开发学习笔记之初步接触
- SAP BW概念体验——视频学习笔记01
- [javase学习笔记]-1.4 Java程序开发之初体验--Hello World
- JavaWeb 学习笔记 spring+jdbc整合开发初步
- VS 2008 Feature Pack界面开发学习笔记之初步接触
- ios客户端开发流程(视频学习笔记)
- Python Web开发 之Django框架入门学习笔记(一)——安装和初步使用
- Hibernate视频学习笔记(2)持久对象的生命周期及Query接口初步
- FFmpeg基础库编程开发学习笔记——视频常见格式
- Android应用开发学习笔记之播放视频
- IOS学习笔记 1:IOS项目开发初步认识