问题描述
公司业务有需求需要实现对视频的快放和慢放,比如1.3、1.5、1.7、2.0、0.5等几种播放速度可以选择设置。请问各位大神这个应该怎么实现呢?具体原理是什么?我只知道大概原理是设置帧率可以变化,但是我不清楚怎么实现。网上搜了大量的内容也无果。
问题解答
回答1:我不知道题主是怎么查的,但是我Google关键字“Android 视频倍速”第一个就有解决方案。
方案:使用基于FFmpeg的开源框架Vitamio来实现,你C好的话直接使用FFmpeg也一样。它支持0.5~~2.0倍速,应该满足题主的需求了吧。
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mMediaPlayer) { // optional need Vitamio5.2 //视频预处理完成后回掉,设置播放速度 mPlayer = mMediaPlayer; //mMediaPlayer的setPlaybackSpeed方法控制视频的播放速度。数值从e.g. 0.8 or 2.0, default to 1.0, range in [0.5-2] mMediaPlayer.setPlaybackSpeed(1.0f); } });
参考:http://blog.csdn.net/hnzcdy/article/details/53095976