2014-01-17 21 views
0

我想在视频到达当前时间时在TextView中显示文本。我试过这段代码:视频到达当前时间时在TextView中显示文本Android

public class VideoActivity extends Activity { 
    private static final String MY_AD_UNIT_ID = null; 
    protected static final String TAG = null; 
    private AdView adView; 
    int waktu; 
    Button btncek; 
    private MediaController controller = null; 
    TextView textView2; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.videoplayer); 
    Bundle bundle = getIntent().getExtras(); 
    String urlbarus = getIntent().getStringExtra("urlbaru"); 
    final VideoView videoView = (VideoView) findViewById(R.id.videoView1); 

    videoView.setVideoPath(urlbarus); 


    MediaController.MediaPlayerControl mcEvents = new MediaController.MediaPlayerControl() {   
     public void start() { 
      videoView.start(); 
     } 

     public void seekTo(int pos) { 
      videoView.seekTo(pos);   
     } 

     public void pause() { 
      videoView.pause(); 
     } 

     public boolean isPlaying() {    
      return videoView.isPlaying(); 
     } 

     public int getDuration() {   
      return videoView.getDuration(); 
     } 

     public int getCurrentPosition() {   
      return videoView.getCurrentPosition(); 
     } 

     public boolean canSeekForward() {   
      return true; 
     } 

     public boolean canSeekBackward() { 
      return true; 
     } 

     public boolean canPause() { 
      return true; 
     } 

     @Override 
     public int getBufferPercentage() { 
      // TODO Auto-generated method stub 
      return 0; 
     } 
    }; 

    controller = new MediaController(this); 
    controller.setMediaPlayer(mcEvents); 
    controller.setAnchorView(findViewById(R.id.wrapper)); 

    videoView.start(); 


    if(mcEvents.getCurrentPosition()>=10000){ 
      textView2.setText("kebaca"); 
      } 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    //the MediaController will hide after 3 seconds - tap the screen to make it appear again 
    controller.show(); 
    return false; 
} 

这是用于显示文本代码:

if(mcEvents.getCurrentPosition()>=10000){ 
    textView2.setText("kebaca"); 
} 

我已经试过的代码,但没有任何反应(textview2不显示文本)

谁能帮我?

回答

0

尝试类似的东西..

final MediaController.MediaPlayerControl mcEvents = .... 

    textView2.setText(""); // edited 

    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      while (mcEvents.getCurrentPosition()<10000){ 
       try { 
        Thread.sleep(1000); 
       } catch (InterruptedException ignored) { } 
      } 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        textView2.setText("kebaca"); 
       } 
      }); 
     } 
    }).start(); 
+0

这使得力闭合,登录猫说:致命异常:主要显示java.lang.NullPointerException – Redturbo

+0

OWH,问题是我忘了申报findviewbyid为TextView的,后我宣布它,所有的工作.. – Redturbo

+0

再次有一个问题,代码是不是真的有用,当我改为mcEvents.getCurrentPosition()> 10000(我使用if)时,文本显示从第一次活动启动(适当的动作是10000毫秒后,文本显示).. – Redturbo

相关问题