Android短信管家视频播放器代码备份

自己保留备份,增强记忆

 

这是video的类

public class VideoActivity extends Activity {
    /**
     * 解析网络页面
     */
    private WebView wv;
    /**
     * 进度条类
     */
    private ProgressDialog pd;
    /**
     * 异步处理消息
     */
    private Handler handler;
    
    private static final int SHOW = 0;
    private static final int HIDE = 1;
    private static final int FLAG = 2;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        AppConnect.getInstance(this);    
        // 设置没有标题
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.video_main);
        
        Toast.makeText(this, "温馨提示:网页中所有的视频都可以直接播放哦!", 1).show();
        // 执行初始化函数
        init();
        //http://3g.youku.com
        //http://m.tudou.com
        loadurl(wv,"http://m.hao123.com",false);
        handler = new Handler() {
            public void handleMessage(Message msg) {// 定义一个Handler,用于处理下载线程与UI间通讯
                if (!Thread.currentThread().isInterrupted()) {
                    switch (msg.what) {
                    case SHOW:
                        pd.show();// 显示进度对话框
                        break;
                    case HIDE:
                        pd.hide();// 隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。
                        break;
                    case FLAG:
                        flag = false;
                        break;
                    }
                }
                super.handleMessage(msg);
            }
        };
    }
    
    
    

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
//        AppConnect.getInstance(this).getPushAd();
    }




    public void init() {
        wv = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = wv.getSettings();
        webSettings.setJavaScriptEnabled(true);// 设置支持JavaScript,非常重要
        webSettings.setAllowFileAccess(true);
        
        
        // wv.setScrollBarStyle(0);//滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上

        // 过滤调用第三方浏览器。并且解析视频网站播放地址,传给播放器
        wv.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(final WebView view,
                    final String url) {

                if (url.contains("3gp") || url.contains("mp4")) {// http://113.31.34.14:80/work/500/152/283/484/500.20120913082849.3gp
                    loadurl(view, url, true);// 载入视频
                } else {
                    loadurl(view, url, false);// 载入网页
                }
                // http://113.31.34.15:80/work/500/094/076/171/500.20120716165645.3gp

                return true;
            }// 重写点击动作,用webview载入

        });
        wv.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {// 载入进度改变而触发
                
                if (progress == 100) {
                    handler.sendEmptyMessage(HIDE);
                    // 1,如果全部载入,隐藏进度对话框;2,显示加载进度
                }
                super.onProgressChanged(view, progress);
            }
        });

        
        Button mHome = (Button) findViewById(R.id.home);
        mHome.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                loadurl(wv,"http://m.hao123.com",false);
            }
        });
        Button mMovie = (Button) findViewById(R.id.movie);
        mMovie.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                loadurl(wv, "http://m.tudou.com/category.do?channelId=22&v=3&sid=a45fa79d9fc04306bcba762430e0eacc&cp=",false); 

            }
        });
        
    
        
        Button mAnimation = (Button) findViewById(R.id.manimation);
        mAnimation.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                loadurl(wv, "http://m.youku.com/smartphone/channels?cid=97",false); 
//                AppConnect.getInstance(MainActivity.this).showOffers(MainActivity.this);
            }
        });
        
        Button mArts = (Button) findViewById(R.id.arts);
        mArts.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                loadurl(wv, "http://m.youku.com/smartphone/channels?cid=92",false); 
//                AppConnect.getInstance(MainActivity.this).showMore(MainActivity.this);
            }
        });

        pd = new ProgressDialog(VideoActivity.this);
        pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        pd.setMessage("数据载入中,请稍候!");
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {// 捕捉返回键
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        
            ConfirmExit();// 按了返回键,但已经不能返回,则执行退出确认
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    public void ConfirmExit() {// 退出确认
        AlertDialog.Builder ad = new AlertDialog.Builder(VideoActivity.this);
        ad.setTitle("退出");
        ad.setMessage("是否退出在线影音?");
        ad.setPositiveButton("是", new DialogInterface.OnClickListener() {// 退出按钮
                    @Override
                    public void onClick(DialogInterface dialog, int i) {
                        // TODO Auto-generated method stub
                        VideoActivity.this.finish();// 关闭activity

                    }
                });
        ad.setNegativeButton("否", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int i) {
                // 不退出不用执行任何操作
            }
        });
        ad.show();// 显示对话框
    }
    
    private boolean flag = false;

    /**
     * 加载网络页面
     * @param view
     * @param url
     * @param isVideoUrl
     */
    public void loadurl(final WebView view, final String url,
            final boolean isVideoUrl) {
        new Thread() {
            public void run() {
                if (handler != null)
                    handler.sendEmptyMessage(SHOW);
                    String uris = url;
                if (isVideoUrl) {
                    
                    
                    //判断是否是播放地址,并启动播放的
                    if (uris.contains("3gp") || uris.contains("mp4")) {
                        
                        if(!flag){
                            flag = true;
                            Uri uri = Uri.parse(uris);
                            Log.i("yangguangfu", "uris="+uris);
                            
                            Intent intent = new Intent(VideoActivity.this,    VideoPlayerAcitity.class);
                            intent.setDataAndType(uri, "video/*");
//                            intent.setType("video/*");
//                            intent.setData(uri);
//                            
//                            Intent intent = new Intent(Intent.ACTION_VIEW);
//                            intent.setDataAndType(uri,"video/*");
//                            intent.setData(uri);
                            
//                            
//                            //调器系统所有播放    
//                            Intent intent = new Intent(Intent.ACTION_VIEW);
//                            intent.setData(uri);
//                            intent.setType("video/*");
                            
                            
                            
//                            //调器系统所有播放    
//                            //android.intent.action.VIEW
//                            Intent intent = new Intent(Intent.ACTION_VIEW);
//                            intent.setDataAndType(uri, "video/*");
                            
                            Log.i("yangguangfu", "startActivity");
                            VideoActivity.this.startActivity(intent);
                            handler.sendEmptyMessageDelayed(FLAG, 3000);
                        }
                        
                    }
                } else {
//                    Intent intent = new Intent(Intent.ACTION_VIEW);
//                    intent.setDataAndType(uri,"video/*");
//                    intent.setData(Uri.parse(url));
                    view.loadUrl(url);// 载入网页
                }

            }
        }.start();
    }




    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
//        AppConnect.getInstance(this).finalize();
    }

    

}

 

播放器代码:

/**
 * 
 *  播放器类
 */
public class VideoPlayerAcitity extends Activity {

    private Uri uri = null;
    private VideoView mVideoView = null;
    private LinearLayout mLinearLayout = null;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video);
        
        //获取播放地址
        uri = getIntent().getData();
        //初始化视频显示控件
        mVideoView = (VideoView) findViewById(R.id.vv);
        mLinearLayout =(LinearLayout)findViewById(R.id.player_loading);
        if (uri != null) {
            
            if (mVideoView != null) {
                //加载播放地址
                mVideoView.setVideoURI(uri);
            }

        }
        if (mVideoView != null)
            mVideoView.setOnPreparedListener(new OnPreparedListener() {

                @Override
                public void onPrepared(MediaPlayer mp) {
                    if (mVideoView != null){
                        //开始播放
                        mVideoView.start();
                        mLinearLayout.setVisibility(View.GONE);
                    }
                        

                }
            });
        if (mVideoView != null){
            //显示控制栏
            mVideoView.setMediaController(new MediaController(this));
        }
            
    }

}
原文地址:https://www.cnblogs.com/yejiurui/p/3437518.html