手机影音9--视频播放器的高级功能(2)
2016-11-15 23:30
302 查看
1.监听播放出错
class MyOnErrorListener implements MediaPlayer.OnErrorListener { @Override public boolean onError(MediaPlayer mp, int what, int extra) { // Toast.makeText(SystemVideoPlayer.this, "播放出错了哦", Toast.LENGTH_SHORT).show(); //1.播放的视频格式不支持--跳转到万能播放器继续播放 startVitamioPlayer(); //2.播放网络视频的时候,网络中断---1.如果网络确实断了,可以提示用于网络断了;2.网络断断续续的,重新播放 //3.播放的时候本地文件中间有空白---下载做完成 return true; } }
2.万能解码框架简介
1.ffmpeg2.VLC
3.Vitamio 万能解码框架,在Android和IOS平台上直接使用。
Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。
里面封装了ffmpeg
3.Vitamio的集成
1.关联Vitamio库compile project(':vitamio')
2.把功能清单文件对应的配置拷贝过去 权限
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
配置
<!-- Don't forgot InitActivity --> <activity 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" />
3.把系统SystemVideoPlayer复制一份,改名VitamioVideoPlayer 导入的包全部换成是Vitamio的包,MediaPlayer,VideoView
自定义VitamioVideoView 继承Vitamio的VideoView
4.布局文件activitysystemvideoplayer.xml复制一份改名activityvitamiovideoplayer.xml,并且把里面的VideoView替换成Vitamio的VitamioVideoView
5.初始化Vitamio库,在布局文件加载之前
Vitamio.isInitialized(this);
6.当系统播放器播放出错的时候跳转到VitamioVideoPlayer播放 疑问:能否直接用Vitamio播放器播放呢?
注意:a,把数据传入VtaimoVideoPlayer播放器 b,关闭系统播放器
让Activity在桌面显示图标,并且点击图标的时候进入软件
<category android:name="android.intent.category.LAUNCHER" />
3.当万能播放器播放失败的提示
class MyOnErrorListener implements MediaPlayer.OnErrorListener { @Override public boolean onError(MediaPlayer mp, int what, int extra) { //什么情况下会出错 //1.播放的格式不支持-跳转到万能播放器继续播放 //Toast.makeText(VitamioVideoPlayerActivity.this,"播放视频出错了="+extra,Toast.LENGTH_SHORT).show(); showErrorDialog(); //2.播放视频的过程中网络中断--播放重试 //3.播放的文件中间缺省--把下载模块解决好,不要用空白 return true; } }
private void showErrorDialog() { 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(); }
4.系统播放器和万能播放器手动切换
case R.id.btn_switch: new AlertDialog.Builder(VideoPlayerActivity.this) .setMessage("当前是系统播放器,是否要切换万能播放器播放") .setNegativeButton("下次再说", null) .setPositiveButton("立刻切换", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { //退出播放器 startVitamioPlyer(); } }) .setCancelable(false) .show(); break;
相关文章推荐
- 手机影音8--视频播放器的高级功能(1)
- 手机影音6--视频播放器的基本功能(3)
- 手机影音4--视频播放器的基本功能(1)
- 手机影音最终,软件退出功能的优化
- html5开发手机打电话发短信功能,html5的高级开发,html5开发大全,html手机电话短信功能详解
- 手机影音第七天 视频的播放下一个视频功能实现,视频进度、电量变化的实现
- html5开发手机打电话发短信功能,html5的高级开发,html5开发大全,html手机电话短信功能详解
- 微信频繁使用成手机卡顿元凶 功能与用户体验失衡
- Fanwe 方维P2P系统(3.0版本)接入手机短信功能--支持注册验证、资金变动提醒、投标提醒等
- Android 手机震动功能实现
- 安卓Android手机直播推送同步录像功能设计与实现源码
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- 十二、Python高级功能之Mysql数据库模块
- 利用GridView实现手机菜单功能
- OpenSSH高级功能之端口转发(Port Forwarding)
- 手机毒霸去广告功能分析一:总体分析
- 搜索功能吊炸天,出门在外通过Outlook手机APP快速找到那个骚气的技术宅
- 手机惊曝最新功能 65分钟将生鸡蛋煮熟(组图)
- 深入浅出CChart 每日一课——第四课 等高线图,白富美之第一个高级功能
- 手机拍照功能的简单实现