最近公司做的项目中有一个这样的需求,当我的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就是我们所需要的依赖。

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

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

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

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

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

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;@Overrideprotected 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() {@Overridepublic 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);}@Overridepublic boolean onError(MediaPlayer mp, int what, int extra) {return false;}
}

看效果图:

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

mMediaPlayer.setPlaybackSpeed(1.0f);

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

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

博客已经移步:chaodongyang.com

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

android视频开发倍速播放,调整视频播放速度相关推荐

  1. 腾讯视频 android 2倍,腾讯视频多倍速播放产品设计小结

    观看是腾讯视频对于用户来说最为核心的体验,我们不断努力把精力聚焦在用户观看过程的体验优化,为用户创造更流畅有和趣的观看体验.近期其中一个探索是多倍速播放的尝试,此文向大家分享下我们在这次产品设计方案中 ...

  2. PPT里被插入的视频如何倍速播放?

    前提:当播放PPT时,如果同时需要播放一个视频,可以有2种方法:(1)PPT里可以插入视频(2)单独放在桌面上的视频也可以倍速播放. 那么,PPT里被插入的视频如何倍速播放? 1.一页空白PPT 2. ...

  3. 百度网盘视频在线(倍速播放)

    百度网盘视频在线(倍速播放) 实现步骤: 在网页打开百度网盘,在期中找到要观看的视频 选择好视频之后,在视频的网页按下F12在Console下输入以下这条命令就可以开启倍速观看了 我选的是1.5倍速的 ...

  4. Android MediaPlayer 音频倍速播放,调整播放速度

    本文链接: Android MediaPlayer 倍速播放,调整播放速度 现在市面上的很多音视频App都有倍速播放的功能,例如把播放速度调整为0.5.1.5.2倍等等. 从Android API 2 ...

  5. android b站倍速播放器,哔哩哔哩怎么加速播放?B站网页版和手机版视频倍速播放的方法介绍...

    bilibili简称B站是国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主.那么,爱逛b站的朋友们都知道,加速播放效果更佳!那么,哔哩哔哩怎么加速播放呢?接下来小编就 ...

  6. 考研必备 | 百度网盘网页视频在线倍速播放

    写在前面:   考研学子努力加油,拼尽全力吧!  1.  >>  彩蛋 1 << 2.   >>  彩蛋 2<< 1.打开百度网盘网页视频播放页面 ,在 ...

  7. 谷歌浏览器自定义视频的倍速播放

    想随意调节视频播放的倍速 ,谷歌浏览器按f12,点选console 输入 document.querySelector('video').playbackRate = 3; 按下回车即可3倍速播放,想 ...

  8. 百度网盘网页版视频在线倍速播放

    由于最近要刷高数视频,时间不充裕了,所以打算加速看视频,但是却发现-度盘不止下载高效-而且- 此方法适用于Chrome浏览器: 1 .打开开发者工具 2 .选择Console,并在下方输入此句代码(此 ...

  9. 百度云视频 在线倍速播放

    使用谷歌浏览器 进入 pan.baidu.com,打开一个视频 按F12打开审查模式,并点击console进入控制台 输入代码videojs.getPlayers("video-player ...

最新文章

  1. Python 2 宣布正式退休,Python 3 时代到来!
  2. jQuery学习笔记6:表单选择器
  3. shell awk 的一些用法
  4. Spring Cloud Alibaba源码 - 21 Ribbon 源码解析
  5. 每天学一点儿shell:shell脚本的异步执行
  6. 关于QMap的几点总结思考
  7. VTK:PolyData之CenterOfMass
  8. 【数据结构与算法】之深入解析“我的日程安排表II”的求解思路与算法示例
  9. python快速学_python快速学习4
  10. Windows各种计时器
  11. linux下cron定时任务的总结
  12. c语言程序设计实验周信东指针,C语言程序设计实验4 数组 周信东
  13. Android含文档server结束(client UI接口异步请求的一部分)三
  14. 给内联元素设置宽高的几种方式
  15. Android开发的前景到底怎么样?
  16. linux 网络编程
  17. java源码编译指令
  18. SQL Sever 创建视图
  19. 建站之星v2.7快速更换模版
  20. 记录vue中使用了transition后使用fixed引起的Bug

热门文章

  1. 教你架设安全的交换机系统
  2. Office Word中横线的增加和删除方法
  3. 通过PHPMailer发送会议邀请邮件,可将会议邀请信息写入outlook和Foxmail日历中
  4. css 媒体查询问题 @media
  5. React+Nginx 二级域名指向配置
  6. Vue3.0+Cesium+Tomcat服务下倾斜摄影数据加载详细过程
  7. 知乎高赞,6款办公工具,小白逆袭成职场大神
  8. 一定要让孩子明白“越自律,越自由”
  9. 华为鸿蒙邀请函,2019年华为开发者大会邀请函曝光,鸿蒙实锤?
  10. 十大免费和开源计算机辅助翻译软件