Android 使用Vitamio打造自己的万能播放器(5)——在线播放(播放优酷视频)
前言
为了保证每周一篇的进度,又由于Vitamio新版本没有发布, 决定推迟本地播放的一些功能(截图、视频时间、尺寸等),跳过直接写在线播放部分的章节。从Vitamio的介绍可以看得出,其支持http、m3u8等多种网络协议,本章将编写播放优酷视频的例子。
系列
1、Android使用Vitamio打造自己的万能播放器(1)——准备
2、Android使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
3、Android使用Vitamio打造自己的Android万能播放器(3)——本地播放(主界面、视频列表)
4、Android使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)
正文
一、目标
1、正式命名"开播视频",原意:"开源的视频播放器",也有"开始播放视频"的简单意思,希望大家喜欢 :)
2、采用内嵌优酷(3g.youku.com) 的方式,直接播放视频文件。
二、实现
FragmentOnline
public class FragmentOnline extends FragmentBase { private WebView mWebView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_online, container, false); mWebView = (WebView) v.findViewById(R.id.webview); mWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setPluginsEnabled(true); mWebView.loadUrl("http://3g.youku.com"); mWebView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { }; /** 页面跳转 */ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (FileUtils.isVideoOrAudio(url)) { Intent intent = new Intent(getActivity(), VideoPlayerActivity.class); intent.putExtra("path", url); startActivity(intent); return true; } return false; }; }); mWebView.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView != null && mWebView.canGoBack()) { mWebView.goBack(); return true; } return false; } }); return v; }
代码说明:
由于内嵌了3g.youku.com,页面布局都非常完好,并且里面获取播放地址非常容易,只需监听页面跳转即可。
a). onKey处理后退事件,返回到上一个页面
b). 注意WebViewClinet的shouldOverrideUrlLoading方法,如果返回true页面将不执行跳转,这里以后还会改进,播放失败的话直接使用浏览器的flash播放。
c). fragment_online的layout这里就不贴了,就是一个WebView控件。
三、警告
视频、书籍、音乐都是版权很严格领域,如何避免版权问题是需要认真考虑的问题。咨询了朋友,本文采取的方式是可以的,一般以主要判定是否有版权就是看是否去除广告,恰巧3g.youku.com的视频都是不带广告的,直接的mp4文件播放。
四、相关文章
通过反编译得到 优酷视频 真实地址
youku网视频地址获取原理
优酷视频真实地址解析
六、Vitamio及相关
Vitamio:http://vov.io
VPlayer:http://vplayer.net (使用Vitamio最成功的产品,用户超过500万)
结束
这里本来是要取m3u8地址的,也已经取到,但当前版本的vitamio无法播放解析出来的地址,也就直接使用mp4的地址了,简单方面,这个问题再后续版本已经修复,从新版的VPlayer大家可以看一下效果。虽然目前为止只是一个Demo,仍努力朝着一款正式的产品方面迈进,希望到系列文章结束时能正式发布到应用商店供用户使用,也欢迎大家多提建议~~
以上就是对Android Vitamio播放网络视频的资料整理,后续继续补充。
- Android GSYVideoPlayer视频播放器功能的实现
- Android项目实现视频播放器
- Android使用vitamio插件实现视频播放器
- Android基于IJKPlayer视频播放器简单封装设计
- Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现
- Android多媒体之VideoView视频播放器
- android webvie指定视频播放器播放网站视频
- Android 使用Vitamio打造自己的万能播放器(10)—— 本地播放 (缩略图、视频信息、视频扫描服务)
- Android 使用Vitamio打造自己的万能播放器(7)——在线播放(下载视频)
- Android UniversalVideoView实现视频播放器
相关文章
Android开发RecyclerView性能优化之异步预加载
这篇文章主要介绍了Android开发RecyclerView性能优化之异步预加载实现解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-06-06Android ScrollView的顶部下拉和底部上拉回弹效果
本篇文章主要介绍了Android ScrollView的顶部下拉和底部上拉回弹效果,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-05-05Android中使用CircleImageView和Cardview制作圆形头像的方法
这篇文章主要介绍了Android中使用CircleImageView和Cardview制作圆形头像的方法,简单介绍了CircleImageView和Cardview的使用,需要的朋友可以参考下2016-09-09Android 多层嵌套后的 Fragment 懒加载实现示例
这篇文章主要介绍了Android 多层嵌套后的 Fragment 懒加载实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-04-04屏蔽RecyclerView单边滑动到头阴影(fadingEdge)的方法
这篇文章主要给大家介绍了如何屏蔽RecyclerView单边滑动到头阴影(fadingEdge)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。2018-04-04Flutter交互并使用小工具管理其状态widget的state详解
这篇文章主要为大家介绍了Flutter交互并使用小工具管理其状态widget的state详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-12-12Android手机开发 使用线性布局和相对布局实现Button垂直水平居中
本文主要结合自己的理解分别对使用LinearLayout和RelativeLayout两种方式实现居中做了总结,希望对大家有所帮助。2016-05-05Android Scroll实现弹性滑动_列表下拉弹性滑动的示例代码
下面小编就为大家分享一篇Android Scroll实现弹性滑动_列表下拉弹性滑动的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-01-01
最新评论