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)); } } }
如果,这篇博客帮您解决了问题,不妨点击一下右下角的【推荐】。如果,您希望更容易地发现我的新博客,不妨点击一下【加关注】。因为,我的热情需要您的肯定和支持!感谢您的阅读,如果文章中有错误或者您有什么好的建议,也欢迎您直接留言批评指教。Thanks,friends! |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步