編輯:關於Android編程
前言
為了保證每周一篇的進度,又由於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類的手寫應用時,整體上都有這樣一個印象:android的手寫不流暢、不自然,和蘋果應用比起來相差太遠。本文結合作者親身經歷,介紹一下有效提高手寫流暢度
<?xml version=. encoding=UTF-?><RelativeLayout xmlns:android=http://
折騰了一陣,終於是安裝上了,臥槽,先在AndroidStudio裡面安裝permissiondispatcher插件,看圖:重啟完成之後就是配置build.gradle,
手機QQ快速取消圖標上未讀消息的數字。現在手機QQ5.0也開始跟iso的一樣。在圖表顯示未讀消息的數字。我們進入手機QQ的時候,想取消那個未讀的顯示數字,就