2012-03-08 20 views
1

有誰知道爲什麼我的應用程序在打印出VideoView中的變量時只返回錯誤的值?VideoView變量有錯誤的值

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    VideoView video = (VideoView)findViewById(R.id.introvideo); 
    VideoThread IntroClip = new VideoThread(); 
    IntroClip.execute(video); 
} 

private class VideoThread extends AsyncTask<VideoView, Integer, VideoView> { 
     @Override 
     protected VideoView doInBackground(VideoView... video) { 
     video[0].setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.intro); 
      return video[0]; 
     } 

    protected void onPostExecute(VideoView video) { 
     video.start(); 
    } 
} 

如果我嘗試打印video.getheight,它始終爲0,video.IsPlaying始終爲false,依此類推。 我必須瞭解視頻何時停止播放。換句話說這樣的事情在OnCreate法:

while(video.IsPlaying()) 
{ 



} 

/*Stopped playing, continue...*/ 

但是作爲一直提到的錯誤值: -/

+0

你應該在答案部分回答你的問題,然後接受你自己的答案 – 2012-03-09 21:15:40

+0

對不起,沒有看到該選項;) – Araw 2012-03-10 09:28:54

回答

1

找到了解決辦法:

VideoThread IntroClip = new VideoThread(); 
IntroClip.execute(video); 
    video.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ 
     public void onCompletion(MediaPlayer mp) { 
      setContentView(R.layout.loginmenu); 
     } 
    }); 

參考How to start activity after VideoView end

問候!