前言
1、正式命名"開播視頻",原意:"開源的視頻播放器",也有"開始播放視頻"的簡單意思,希望大家喜歡 :)
2、採用內嵌優酷(3g.youku.com) 的方式,直接播放視頻文件。
FragmentOnline
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文件播放。
五、相關文章
六、Vitamio及相關
Vitamio:http://vov.io
VPlayer:http://vplayer.net (使用Vitamio最成功的產品,用戶超過500萬)