美文网首页
视频播放简单梳理

视频播放简单梳理

作者: Motguix | 来源:发表于2018-08-18 13:05 被阅读0次

    毕业三年了,曾经做过视频播放器,Camera和Wlan。刚毕业的时候就做的是视频播放器,但是由于每天都在bug中奋战,所以对于framework和底层没有深挖,等到了前段时间面试,才发现,面试官问的全部都是底层的架构性的东西。唉,总算是吃一堑长一智,现在开始好好梳理一些framework和底层的东西,当然还是从上层开始看起,毕竟两年没接触了,好多东西记不太清了。如果看到有错误,还请指正。

    MediaPlayer给我们封装了播放音乐和视频的一些基本的api。

    MediaPlayer对象的获取

    当前一般我们获取MediaPlayer对象的方式有两种:

    • mMediaPlayer = new MediaPlayer;
    • MediaPlayer mp = MediaPlayer.create(this, R.raw.test_media_file_rsid);

    MediaPlayer实例对象的操作方法

    setDataSource(设置播放资源)

    如果采用new对象的方式,需要调用setDataSource给MediaPlayer设置播放资源,而create方式中我们已经设置的有播放资源

    prepare() or prepareAsync()

    顾名思义,prepareAsync()方法为异步调用,我们可以通过设置setOnPreparedListener来监听播放器prepare准备完成的事件。而Prepare则是同步的,准备完毕,即可直接开始播放

    seekTo()

    seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。

    start(), pause(), stop()

    开始播放,暂停和停止播放。

    reset() release()

    reset()将播放器置为idle状态,可以从error状态中恢复;release()释放资源

    MediaPlayer各种监听器

    播放中可能会遭遇各种情况,比如出现错误,或者有一些提示信息,以及歌曲播放进度定位等等情况的反馈,可以通过设置监听器来处理。比如:
    setOnCompletionListener(MediaPlayer.OnCompletionListener listener)
    setOnInfoListener();
    setOnErrorListener();

    后续有总结我会继续更新,先这么多!

    相关文章

      网友评论

          本文标题:视频播放简单梳理

          本文链接:https://www.haomeiwen.com/subject/jqhfiftx.html