您的位置:首页 > 其它

视频开发初步体验 学习笔记

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: