使用Vitamio打造自己的Android萬能播放器(5)——在線播放(播放優酷視頻)


 

前言

  為了保證每周一篇的進度,又由於Vitamio新版本沒有發布, 決定推遲本地播放的一些功能(截圖、視頻時間、尺寸等),跳過直接寫在線播放部分的章節。從Vitamio的介紹可以看得出,其支持http、m3u8等多種網絡協議,本章將編寫播放優酷視頻的例子。
 
聲明
  歡迎轉載,但請保留文章原始出處:) 
    博客園:http://www.cnblogs.com
    農民伯伯: http://over140.cnblogs.com 
 
系列
  4、 使用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控件。 

 

  三、下載

 Vitamio-Demo2012-6-15.zip

 

  四、 警告

視頻、書籍、音樂都是版權很嚴格領域,如何避免版權問題是需要認真考慮的問題。咨詢了朋友,本文采取的方式是可以的,一般以主要判定是否有版權就是看是否去除廣告,恰巧3g.youku.com的視頻都是不帶廣告的,直接的mp4文件播放。

 

  五、相關文章

通過反編譯得到 優酷視頻 真實地址 

youku網視頻地址獲取原理

優酷視頻真實地址解析 

 

  六、Vitamio及相關

Vitamio:http://vov.io 

  VPlayer:http://vplayer.net (使用Vitamio最成功的產品,用戶超過500萬) 

 

結束
  這里本來是要取m3u8地址的,也已經取到,但當前版本的vitamio無法播放解析出來的地址,也就直接使用mp4的地址了,簡單方面,這個問題再后續版本已經修復,從新版的VPlayer大家可以看一下效果。雖然目前為止只是一個Demo,仍努力朝着一款正式的產品方面邁進,希望到系列文章結束時能正式發布到應用商店供用戶使用,也歡迎大家多提建議~~ 

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM