2012-06-10 36 views
1

我的layout.xml包含一個帶有幾個TextView和Buttons的FrameLayout,我使用它就像一個MediaController,它也包含一個SurfaceView。 在代碼中,我創建的MediaPlayer,並設置SurfaceView的SurfaceHolder作爲顯示是這樣的:SurfaceView文物

surfaceView = (SurfaceView) findViewById(R.id.video_surfaceview); 
surfaceHolder = surfaceView.getHolder(); 
surfaceHolder.addCallback(this); 
mediaPlayer.setDisplay(surfaceHolder); 

這個偉大的工程顯示視頻,但是當我試圖調用:

overLayTextView.setVisibility(View.Gone); 

的overLayTextView是仍然可見。我試圖檢索overLayTextView的視圖狀態,它被設置爲Gone。我認爲SurfaceView不會更新它的繪圖狀態,直到感覺像(通常在20秒以後發生)爲止。所以我的問題是,如果有什麼我可以調用SurfaceView或SurfaceHolder來通知他們應該「重繪」他們的一些內容? (顯然不是視頻)。

回答

0

我才意識到線程更新與視頻信息的疊加仍稱:

overLayTextView.setText(mediaPlayer.getDuration()); 

在「無面」的佈局,這並不重要,因爲在查看被隱藏,但SurfaceView這是apparantly不是(至少在某些設備上,奇怪的是)。

希望這會有所幫助,歡呼聲。