使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)

来源:互联网 发布:python 程序 编辑:程序博客网 时间:2024/05/01 12:42
正文
  一、目标
        1、正式命名"开播视频",原意:"开源的视频播放器",也有"开始播放视频"的简单意思,希望大家喜欢 :)
        2、采用内嵌优酷(3g.youku.com) 的方式,直接播放视频文件。
        2012-6-15_1.png

  二、实现
         FragmentOnline
  1. public class FragmentOnline extends FragmentBase {

  2.     private WebView mWebView;

  3.     @Override
  4.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  5.         View v = inflater.inflate(R.layout.fragment_online, container, false);
  6.         mWebView = (WebView) v.findViewById(R.id.webview);
  7.         mWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
  8.         mWebView.getSettings().setJavaScriptEnabled(true);
  9.         mWebView.getSettings().setPluginsEnabled(true);
  10.         mWebView.loadUrl("http://3g.youku.com");
  11.         mWebView.setWebViewClient(new WebViewClient() {
  12.             @Override
  13.             public void onPageFinished(WebView view, String url) {
  14.             };

  15.             /** 页面跳转 */
  16.             @Override
  17.             public boolean shouldOverrideUrlLoading(WebView view, String url) {
  18.                 if (FileUtils.isVideoOrAudio(url)) {
  19.                     Intent intent = new Intent(getActivity(), VideoPlayerActivity.class);
  20.                     intent.putExtra("path", url);
  21.                     startActivity(intent);
  22.                     return true;
  23.                 }
  24.                 return false;
  25.             };
  26.         });

  27.         mWebView.setOnKeyListener(new OnKeyListener() {

  28.             @Override
  29.             public boolean onKey(View v, int keyCode, KeyEvent event) {
  30.                 if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView != null && mWebView.canGoBack()) {
  31.                     mWebView.goBack();
  32.                     return true;
  33.                 }
  34.                 return false;
  35.             }
  36.         });
  37.         return v;
  38.     }
复制代码
代码说明:
              由于内嵌了3g.youku.com,页面布局都非常完好,并且里面获取播放地址非常容易,只需监听页面跳转即可。

                a).        onKey处理后退事件,返回到上一个页面
                b).        注意WebViewClinet的shouldOverrideUrlLoading方法,如果返回true页面将不执行跳转,这里以后还会改进,播放失败的话直接使用浏览器的flash播放。
                c).        fragment_online的layout这里就不贴了,就是一个WebView控件。

  三、下载

           Vitamio-Demo2012-6-15.zip