Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染。Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐。到目前,全球已经有超过 一万 种应用在使用 Vitamio,覆盖用户超过 5亿 。

Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。

一、vitamio的集成

1.1 下载vitamio

到官网的地址https://www.vitamio.org/Download/ 下载最新的vitamio,下载好有2个文件夹要注意:1个vitamio 另一个是vitamio-simple,这2个文件夹后面都要导入到Android studio中

1.2 导入vitamio

打开Android,在file----new----import module ,然后路径选择上面提到的vitamio,点确定;

同样用上面的方法导入vitamio-simple。

导入的vitamio的build.gradle里面对应的sdk版本不一样,需要你对比自己创建的项目,修改为本地的sdk版本等信息,修改好重新sync project。

1.3 把vitamio集成到项目中

1.3.1 关联so库

参照vitamio-simple里的build.gradle里的compile里的例子,关联vitamio库,如compile project(':vitamio')

1.3.2 把功能清单对应的文件拷贝过去

a、权限:

b、配置,这个配置必须不能少,官方也提示了必须加上

android:name="io.vov.vitamio.activity.InitActivity"

android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"

android:launchMode="singleTop"

android:theme="@android:style/Theme.NoTitleBar"

android:windowSoftInputMode="stateAlwaysHidden" />

1.4 把我们之前写的SystemVideoPlayer 复制一份,改为VitamioVideoPlayer,里面的包引用vitamio包里的,特别是videoview,mediaplayer 这个类。

1.5 布局文件 activity_system_video_player.xml复制一份改为activity_vitamio_video_player.xml,里面引用的包也要改为vitamio的类

1.6 在加载布局文件前,初始化vitamio

1.7 当视频播放出错时,跳转到万能播放器vitamioVideoPlayer播放,并把自定义的这个播放器activity  finish()掉

/**

* 播放出错

*/

class MyOnErrorListener implements MediaPlayer.OnErrorListener {

@Override

public boolean onError(MediaPlayer mp, int what, int extra) {

//出错后,系统会自动提示播放出错,同时自己也弹一个吐司

//Toast.makeText(SystemVideoPlayer.this,"播放出错",Toast.LENGTH_SHORT).show();

//播放出错的原因

//1.播放的视频格式不支持  ----解决办法,跳转到万能播放器去播放

//1、关闭老的播放器

//2、把数据传过去

startVitamioPlayer();

//2.播放网络视频时,网路中断   -----如果网络确实断了,提示用户网络断了;如果网络断断续续,重新播

//3.播放的视频中间有空白  -----只能去重新下载

return true;

}

}

private void startVitamioPlayer() {

if (videoview!=null){

videoview.stopPlayback();

}

Intent intent=new Intent(this, VitamioVideoPlayer.class);

if(medialist!=null&&medialist.size()>0){

Bundle bundle=new Bundle();

bundle.putSerializable("mediallist",(ArrayList)medialist);

intent.putExtras(bundle);

intent.putExtra("position",position);  //将点击的视频的位置传过去,方便定位播放的是哪个视频

}else if (uri!=null){

intent.setData(uri);

}

startActivity(intent);

finish();

}

1.8 在vitamio万能播放器里,如果播放还是出错,则提示用户,无法播放视频

/**

* 播放出错

*/

class MyOnErrorListener implements MediaPlayer.OnErrorListener {

@Override

public boolean onError(MediaPlayer mp, int what, int extra) {

//出错后,系统会自动提示播放出错,同时自己也弹一个吐司

Toast.makeText(VitamioVideoPlayer.this,"播放出错",Toast.LENGTH_SHORT).show();

//播放出错的原因

//1.播放的视频格式不支持  ----解决办法,跳转到万能播放器去播放

//2.播放网络视频时,网路中断   -----如果网络确实断了,提示用户网络断了;如果网络断断续续,重新播

//3.播放的视频中间有空白  -----只能去重新下载

//万能播放器出错了,那么弹出一个对话框

showErrrorDialog();

return true;

}

}

private void showErrrorDialog() {

AlertDialog.Builder builder=new AlertDialog.Builder(this);

builder.setTitle("提示");

builder.setMessage("播放出错了");

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

finish();

}

});

builder.show();

}

二、补充之前播放控制栏里的切换播放器的按钮

点击后,弹出一个dialog,然后在用户点击确定时,通过intent,把数据传给vitamio播放器,同理,在vitamio里,点击这个把数据传到这个自定义的播放器里。

else if ( v == switchPlayer ) {

// Handle clicks for switchPlayer

AlertDialog.Builder builder=new AlertDialog.Builder(this);

builder.setTitle("提示");

builder.setMessage("当播放画面有花屏时,尝试切换到系统播放器");

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

startSystemPlayer();

}

});

builder.setNegativeButton("取消",null);

builder.show();

}

private void startSystemPlayer() {

if (videoview!=null){

videoview.stopPlayback();

}

Intent intent=new Intent(this, SystemVideoPlayer.class);

if(medialist!=null&&medialist.size()>0){

Bundle bundle=new Bundle();

bundle.putSerializable("mediallist",(ArrayList)medialist);

intent.putExtras(bundle);

intent.putExtra("position",position);  //将点击的视频的位置传过去,方便定位播放的是哪个视频

}else if (uri!=null){

intent.setData(uri);

}

startActivity(intent);

finish();

}

android 播放器集成,手机影音第十二天,集成vitamio万能播放器相关推荐

  1. 手机影音第十二天,集成vitamio万能播放器

    Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐.到目前,全球 ...

  2. Android 蓝牙开发(二) --手机与蓝牙音箱配对,并播放音频

    Android 蓝牙开发(一) – 传统蓝牙聊天室 Android 蓝牙开发(三) – 低功耗蓝牙开发 项目工程BluetoothDemo 上一章中,我们已经学习了传统蓝牙的开发,这一章,我们来学习如 ...

  3. android自动点击adb,自动点击器adb手机安卓软件下载安装-自动点击器adb免root最新版下载v1.0.5-乐游网软件下载...

    <自动点击器adb>是一款非常实用的自动手机点击软件,软件可以在不生成脚本,不需要root的情况下模拟真实的点击,帮助用户解决手机中需要不断点击的情况,软件的操作简单容易上手,当然功能比需 ...

  4. linux播放器切换,让mplayer成为linux下的万能播放器(更新)

    1下载安装mplayer需要的各种软件 去这里下载 MPlayer-1.0rc1.tar.bz2 下载你喜欢的skin 例如你下载 Abyss-1.6.tar.bz2 下载必需的code all-20 ...

  5. Android视频《手机影音_项目实战》-杨光福-专题视频课程

    Android视频<手机影音_项目实战>-49877人已学习 课程介绍         手机影音项目是真实的上线项目,本视频在原项目基础上,进行了新技术的更新和优化.该项目包括本地音乐播放 ...

  6. 操作简单的影音文件播放工具-万能播放器下载

    万能播放器是一款操作简单的影音文件播放工具,小伙伴们可以使用万能播放器播放喜欢的影音文件.万能播放器可支持p2p在线点播.边看边下.防病毒等功能.万能播放器几乎兼容市面上所有视频格式,有喜欢的小伙伴们 ...

  7. Vitamio库打造万能播放器(四)

    接着上一篇文章 Vitamio库打造万能播放器(三) 终于到了介绍vitamio的使用了,这个库使用起来非常简单,很容易上手,只需要将前面我们创建好的VideoPlayerActivity的Video ...

  8. linux系统万能播放器下载,360万能播放器Linux版

    360万能播放器Linux版是一款十分不错的播放器,它可以帮助用户轻松播放出各种格式的音视频文件,所以喜欢看视频的用户,快来下载试试吧! 软件介绍 360万能播放器Linux版是一款在Linux系统上 ...

  9. 百度网盘 | 爱奇艺万能播放器与百度网盘的功能关联体验

    文章目录 百度网盘与爱奇艺万能播放器 百度网盘 爱奇艺万能播放器 关联使用 百度网盘与爱奇艺万能播放器 可能大家心中都有一个疑问,百度网盘与爱奇艺万能播放器这两个能有啥关系? 这就不得不提一下 百度 ...

最新文章

  1. ABAP DOI详解(2)
  2. PyTorch模型读写、参数初始化、Finetune
  3. 入门Demo---SpringMVC学习笔记(二)
  4. XML基础——extensible markup language
  5. WeihanLi.Npoi 支持 ShadowProperty 了
  6. java绘制图形代码_ImagePy_Learn | 图形学绘制代码学习:core\draw\polygonfill.py
  7. 巧妙解决Windows 7系统中软件乱码问题
  8. [转载] 百科全说——王晓斋:感冒时您找准医生了吗?(10-10-11)
  9. 时间序列复杂性的度量—近似熵和样本熵
  10. 安卓如何调出软键盘_Android软键盘-显示隐藏软键盘
  11. 个人如何选择阿里云香港服务器?
  12. 搭建LNMP平台加NFS文件共享部署wordpress博客
  13. 软件测试简历上的职业技能怎么写,测试工程师岗位个人简历个人技能范文
  14. IDM Computer Solutions(UltraEdit V26.10.0.30、UltraCompare V18.10.0.78、UEStudio、UltraFTP==) 全系列最新破解
  15. NYOJ 427 Number Sequence
  16. gtsam Overview
  17. Python Pathlib 详解
  18. html标签之列表标签,前端开发资料分享
  19. word 中字号与数字(磅pt)对应关系
  20. 下一代 IDE 工具 JetBrains Fleet 正式公测

热门文章

  1. 弱网测试工具—— clumsy
  2. Bash 漏洞是什么级别的漏洞,有什么危害,具体如何修复?
  3. PHP支付宝服务窗API接口的开发
  4. 针对千禧一代,品牌推广的5种内容营销策略
  5. arduino蓝牙通讯代码_通过手机控制蓝牙串口模块与Arduino通讯
  6. 考研复试软件测试面试,如果考研复试采取远程面试,这4个要点一定要做好!...
  7. Node多版本控制器(nvs)
  8. 编译原理系列之十 代码优化
  9. 玩转iOS开发:5.《Core Animation》CALayer的Transforms
  10. CSS入门教程——颜色