最近公司做的项目中有一个这样的需求,当我的APP通过蓝牙连接跑步机的时候,需要和跑步机同步的播放频。而且跑步机上边的调节速度按钮,可以同步的使APP视频的播放速度同步的加快,这样的来达到模拟场景跑步速度的加快。最开始的解决方案,使用android原生的VideoView控件,非常轻松的就实现了跑步播放视频的功能,可是怎么控制速度呢,找来找去发现实现不了(那位大神可以做到,可以给我留言,学习学习).后来又找了几个其他的播放框架,发现大多数都是通过自定义android原生的来实现的播放,同样的不能实现调整播放速度。最后想到干脆终极的解决方案吧,FFmpeg吧,可惜好无奈啊,宝宝现在C语言还只是初步。哎!最后在网上看到两个基于FFmpeg开发的视频框架,可以解决这个问题。就是大名鼎鼎的Vitamio和VLC.最后我选择了Vitamio,因为这个的资料多一些。朋友们也可以去github看看VLC怎么做。这里提醒一下,使用Vitamio需要到官网去下载最新的5.2版本。因为github的4.0版本bug太多,而且不支持64位架构的处理器。还不支持android6.0.直接来看看我怎么做的吧

     第一步:去官网下载最新的依赖包和demo。中间那个initActivity就是我们所需要的依赖。

      android视频开发倍速播放,调整视频播放速度_第1张图片

  第一步:导入我们的工程吧。import Module.

  android视频开发倍速播放,调整视频播放速度_第2张图片

     android视频开发倍速播放,调整视频播放速度_第3张图片

  什么?报错了,别慌,让我们制定编译的SDK版本。

   android视频开发倍速播放,调整视频播放速度_第4张图片

  修改一下我们的版本,点击一下 Try Again.重新编译一下,就通过了。

   第二步:依赖到我们的项目中:看到最后一步就算成功了。

   android视频开发倍速播放,调整视频播放速度_第5张图片

android视频开发倍速播放,调整视频播放速度_第6张图片

android视频开发倍速播放,调整视频播放速度_第7张图片

 第三步:开始编写我们的代码吧

  

package demo.cdy.com.myvitamiodemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import io.vov.vitamio.MediaPlayer;import io.vov.vitamio.Vitamio;import io.vov.vitamio.widget.MediaController;import io.vov.vitamio.widget.VideoView;public class MainActivity extends AppCompatActivity implements MediaPlayer.OnErrorListener {    private VideoView videoView;    private MediaController mMediaController;    private MediaPlayer mPlayer;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //第一步注册        Vitamio.isInitialized(getApplicationContext());        //初始化我们的控件,注意使依赖包的,不是android原生的。        videoView = (VideoView) findViewById(R.id.videoView);        //实例化控制器        mMediaController = new MediaController(this);        videoView.setMediaController(mMediaController);//绑定控制器        videoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);//设置播放画质 高画质        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);            }        });        videoView.setVideoPath("http://www.midea.com/video/masvod/public/2015/02/28/20150228_14bcec18032_r1_800k.mp4");        //设置错误回掉        videoView.setOnErrorListener(this);    }    @Override    public boolean onError(MediaPlayer mp, int what, int extra) {        return false;    }}

  看效果图:

  android视频开发倍速播放,调整视频播放速度_第8张图片

  最后说名一下:播放速度的控制使是通过

mMediaPlayer.setPlaybackSpeed(1.0f);

来控制的。我们在setOnPreparedListener回掉方法中,把这个MediaPlayer对象给拿出来。以后调节速度就可以自己写按钮通过这个mPlayer对象来随时随地的控制了。

 android视频开发倍速播放,调整视频播放速度_第9张图片

   是不是很方便呢,大家如果有更好的更简洁的办法请留言哦,因为这个依赖包实在太大了,足足压缩之后apk将会增加10M。期待更简洁的办法。

博客已经移步:chaodongyang.com

如果喜欢我的文章需要更多干货,请扫描下方二维码,关注我的微信公众号

android视频开发倍速播放,调整视频播放速度_第10张图片

更多相关文章

  1. RadioButton使用的过程中Text文本和图片显示的问题
  2. Android音视频处理技术 视频录制
  3. Android 三大图片缓存原理、特性对比
  4. Android调用系统相机、自定义相机、处理大图片
  5. 【Android Demo】图片之滑动效果(Gallery)
  6. Android 加载.gif格式图片
  7. android 拍照+从手机相册选择返回图片到imagview
  8. Android 获取系统相册中的所有图片
  9. Android之背景图片设置为重复而不是默认的拉伸

随机推荐

  1. Android与设计模式(4)外观/桥接/MVP
  2. Android(安卓)- Layout时发生'Unfortunat
  3. Android笔记 从init到SystemServer
  4. Android中MaterialDesign使用 (五)自定义
  5. Android的消息机制
  6. android防止内存溢出浅析
  7. android系统体系结构
  8. init进程【4】——属性服务
  9. Android系列学习:handler,HandlerThread
  10. 狂刷Android范例之2:剪贴板范例