今天搞个本地视频播放,用到MediaPlayer,过程给大伙儿分享一下。
我寻思这玩意儿应该不难,毕竟就是放个视频嘛于是我先整个MediaPlayer对象出来:
MediaPlayer mediaPlayer = new MediaPlayer();
有对象,接下来就得告诉它要放哪个视频。我把视频文件放在项目的某个角落,然后把路径设置进去:
*(视频文件路径);
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
弄好路径,我还不能直接让它放,得先让它“准备”一下。就像你做饭前得先把菜洗好切好一样:
准备好,我才敢让它开始播放:
我以为这就完事儿,结果一运行,发现有时候视频放着放着就卡住,声音和画面都不同步,给??整麻!
后来我到处找资料,才晓得原来播放视频这事儿,挺耗资源的,不能在主线程里搞,不然整个界面都卡死。得开个新的线程,把播放的操作都丢进去,这样才不会影响到其他地方:
new Thread(new Runnable() {
@Override
public void run() {

// 把之前的prepare和start都放在这里面
}).start();
除卡顿,我还发现,有时候换个视频放,或者同一个视频快进快退,也会出问题。有时候声音没,有时候画面花,真是让人头大!
我又是一番折腾,发现这MediaPlayer用起来还挺讲究的。每次放完一个视频,或者切换视频,最好都“重置”一下,就像你每次做完饭都要洗锅一样:
然后,再重新设置数据源,重新准备,重新播放。虽然麻烦点,但至少能保证不出幺蛾子。
折腾一天,总算是把这个播放器给弄顺溜。现在想想,这玩意儿还真不简单,里面门道还挺多。下次再搞类似的东西,我就有经验,嘿
还有,为增强播放体验可以考虑下安装解码器,这个我还没来的及实践,准备下次搞一下试试看。