android 播放器集成,手机影音第十二天,集成vitamio万能播放器
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万能播放器相关推荐
- 手机影音第十二天,集成vitamio万能播放器
Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐.到目前,全球 ...
- Android 蓝牙开发(二) --手机与蓝牙音箱配对,并播放音频
Android 蓝牙开发(一) – 传统蓝牙聊天室 Android 蓝牙开发(三) – 低功耗蓝牙开发 项目工程BluetoothDemo 上一章中,我们已经学习了传统蓝牙的开发,这一章,我们来学习如 ...
- android自动点击adb,自动点击器adb手机安卓软件下载安装-自动点击器adb免root最新版下载v1.0.5-乐游网软件下载...
<自动点击器adb>是一款非常实用的自动手机点击软件,软件可以在不生成脚本,不需要root的情况下模拟真实的点击,帮助用户解决手机中需要不断点击的情况,软件的操作简单容易上手,当然功能比需 ...
- linux播放器切换,让mplayer成为linux下的万能播放器(更新)
1下载安装mplayer需要的各种软件 去这里下载 MPlayer-1.0rc1.tar.bz2 下载你喜欢的skin 例如你下载 Abyss-1.6.tar.bz2 下载必需的code all-20 ...
- Android视频《手机影音_项目实战》-杨光福-专题视频课程
Android视频<手机影音_项目实战>-49877人已学习 课程介绍 手机影音项目是真实的上线项目,本视频在原项目基础上,进行了新技术的更新和优化.该项目包括本地音乐播放 ...
- 操作简单的影音文件播放工具-万能播放器下载
万能播放器是一款操作简单的影音文件播放工具,小伙伴们可以使用万能播放器播放喜欢的影音文件.万能播放器可支持p2p在线点播.边看边下.防病毒等功能.万能播放器几乎兼容市面上所有视频格式,有喜欢的小伙伴们 ...
- Vitamio库打造万能播放器(四)
接着上一篇文章 Vitamio库打造万能播放器(三) 终于到了介绍vitamio的使用了,这个库使用起来非常简单,很容易上手,只需要将前面我们创建好的VideoPlayerActivity的Video ...
- linux系统万能播放器下载,360万能播放器Linux版
360万能播放器Linux版是一款十分不错的播放器,它可以帮助用户轻松播放出各种格式的音视频文件,所以喜欢看视频的用户,快来下载试试吧! 软件介绍 360万能播放器Linux版是一款在Linux系统上 ...
- 百度网盘 | 爱奇艺万能播放器与百度网盘的功能关联体验
文章目录 百度网盘与爱奇艺万能播放器 百度网盘 爱奇艺万能播放器 关联使用 百度网盘与爱奇艺万能播放器 可能大家心中都有一个疑问,百度网盘与爱奇艺万能播放器这两个能有啥关系? 这就不得不提一下 百度 ...
最新文章
- ABAP DOI详解(2)
- PyTorch模型读写、参数初始化、Finetune
- 入门Demo---SpringMVC学习笔记(二)
- XML基础——extensible markup language
- WeihanLi.Npoi 支持 ShadowProperty 了
- java绘制图形代码_ImagePy_Learn | 图形学绘制代码学习:core\draw\polygonfill.py
- 巧妙解决Windows 7系统中软件乱码问题
- [转载] 百科全说——王晓斋:感冒时您找准医生了吗?(10-10-11)
- 时间序列复杂性的度量—近似熵和样本熵
- 安卓如何调出软键盘_Android软键盘-显示隐藏软键盘
- 个人如何选择阿里云香港服务器?
- 搭建LNMP平台加NFS文件共享部署wordpress博客
- 软件测试简历上的职业技能怎么写,测试工程师岗位个人简历个人技能范文
- IDM Computer Solutions(UltraEdit V26.10.0.30、UltraCompare V18.10.0.78、UEStudio、UltraFTP==) 全系列最新破解
- NYOJ 427 Number Sequence
- gtsam Overview
- Python Pathlib 详解
- html标签之列表标签,前端开发资料分享
- word 中字号与数字(磅pt)对应关系
- 下一代 IDE 工具 JetBrains Fleet 正式公测