自己保留备份,增强记忆
这是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;@Overridepublic 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.comloadurl(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);}};}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.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.3gploadurl(view, url, true);// 载入视频} else {loadurl(view, url, false);// 载入网页 }// http://113.31.34.15:80/work/500/094/076/171/500.20120716165645.3gpreturn 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() {@Overridepublic void onClick(View v) {loadurl(wv,"http://m.hao123.com",false);}});Button mMovie = (Button) findViewById(R.id.movie);mMovie.setOnClickListener(new OnClickListener() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {// 退出按钮 @Overridepublic void onClick(DialogInterface dialog, int i) {// TODO Auto-generated method stubVideoActivity.this.finish();// 关闭activity }});ad.setNegativeButton("否", new DialogInterface.OnClickListener() {@Overridepublic 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();}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy(); // AppConnect.getInstance(this).finalize(); }}
播放器代码:
/*** * 播放器类*/ public class VideoPlayerAcitity extends Activity {private Uri uri = null;private VideoView mVideoView = null;private LinearLayout mLinearLayout = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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() {@Overridepublic void onPrepared(MediaPlayer mp) {if (mVideoView != null){//开始播放 mVideoView.start();mLinearLayout.setVisibility(View.GONE);}}});if (mVideoView != null){//显示控制栏mVideoView.setMediaController(new MediaController(this));}}}