zoukankan      html  css  js  c++  java
  • 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));
            }
                
        }
    
    }
  • 相关阅读:
    proc文件系统的简介
    linux获取文件属性(API)
    busybox inittab文件分析
    设计模式之Builder模式
    This用法
    以 280W 数据为依据。对比SQL2008 表分区前和分区后的 T_SQL 效率
    jquery数据验证插件(自制,简单,练手)
    C# 每天温习一点(IEnumerable<TSource>)
    多线程应用扫盲(如何简单使用多线程)
    之前做web性能优化的一些个人心得
  • 原文地址:https://www.cnblogs.com/yejiurui/p/3437518.html
Copyright © 2011-2022 走看看