zoukankan      html  css  js  c++  java
  • 循环线程-----判断视频是否播放,循环线程中的视频是否播放的代码

    循环线程- 为什么要使用循环线程,因为线程只执行一次,因为一直运行线程中的代码,那么线程会一直存在,直到某个值的变化!

    private boolean isplay;

    isplay = true;

    dialog = ProgressDialog.show(this, null, "正在加载…", true, true);
    dialog.setCancelable(false);

    // 获得线程消息
    		final Handler handler = new Handler() {
    			@Override
    			public void handleMessage(Message msg) {
    				String s = (String) msg.obj;
    				if ("videook".equals(s)) {
    					// dialog.dismiss();
    					dialog.dismiss();
    					isplay = false;  //检测到视频播放了,那么就把dialog.dismiss掉,并且要结束掉线程循环 
    				} else if ("no".equals(s)) {
    					Toast.makeText(getApplicationContext(), "系统问题", 1).show();
    				}
    			}
    		};
    		try {
    			Intent i = getIntent();
    			uri = i.getStringExtra("videoPath");// "android.resource://" +
    												// getPackageName() + "/" +
    												// R.raw.yqs;
    			integral = i.getStringExtra("integral");// "android.resource://" +
    													// getPackageName() + "/" +
    													// R.raw.yqs;
    			vid = i.getIntExtra("vid", 0);// "android.resource://" +
    											// getPackageName() + "/" +
    											// R.raw.yqs;
    
    			video1.setVideoURI(Uri.parse(uri));
    			video1.start();
    			// 循环线程 ---播放线程,要一直判断视频是否在播放
    			new Thread() {
    				public void run() {
    					while (true == isplay) {      
    						if(video1.isPlaying()){
    							Message msg = new Message();
    							msg.obj = "videook";
    							handler.sendMessage(msg);
    						}
    						
    					}
    
    				};
    			}.start();
    
    			video1.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    				@Override
    				public void onCompletion(MediaPlayer mp) {
    					// 播放结束后的动作
    					AppManager.getAppManager().finishActivity();
    					addIntengral();
    					sendReq();
    				}
    			});
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    	}
    

      

  • 相关阅读:
    主引导扇区的理解
    敏捷的思考
    架构学习笔记
    操作系统笔记
    Docker学习笔记
    技术面试-国外人谈经验
    硬盘的原理学习
    linux压缩和解压命令总结
    好的技术团队和差的技术团队的区别在于技术架构前瞻性和适应变化的能力
    管理者的本质其实就是一个服务者,服务下属的
  • 原文地址:https://www.cnblogs.com/childhooding/p/4528671.html
Copyright © 2011-2022 走看看