2013-08-19 41 views
1

我有一個簡單的活動播放視頻。在Android中,Activity沒有看到方向更改?

 uriStr = ("http://pathToVideo.com/video/" + yyyyMdd_Str + "/" + yyyyMdd_Str +  ".mp4"); 

    VideoView testVideo1_VV =(VideoView) findViewById(R.id.videoTest7vid_VV); 
    testMediaCon1_MC = new MediaController(this); 
    testMediaCon1_MC.setAnchorView(testVideo1_VV); 
    testVideo1_VV.setMediaController(testMediaCon1_MC); 
    testVideo1_VV.setKeepScreenOn(true); 
    testVideo1_VV.setVideoPath(uriStr); 
    testVideo1_VV.requestFocus(); 
    testVideo1_VV.start(); 

在縱向佈局,使得它在屏幕的頂部第三播放視頻被放置在頂部,並在景觀佈局,視頻是在高度和寬度包裝內容全屏。在清單中,我設置了android:configChanges="orientation",以便活動不會更新方向更改。但我的問題是佈局不會隨着方向改變而改變。如何在方向更改時保持播放視頻,還能獲得正確的佈局以顯示方向更改?

因此,現在我認爲解決方案是記錄視頻在播放時的位置,然後使用savedInstanceState來檢索視頻狀態,並在方向更改時從該位置開始播放視頻。事情是這樣的:

@Override 
protected void onSaveInstanceState(Bundle out) { 

super.onSaveInstanceState(out); 
//video state would go here 
} 

@Override 
protected void onRestoreInstanceState(Bundle in) { 

super.onRestoreInstanceState(in); 
//video state would go here 
} 

但現在我不知道該代碼獲取視頻的狀態......

+0

你有沒有實現** onConfigurationChanged()**? –

回答

1

當您設置android:configChanges="orientation"時,您明確告訴Android操作系統,您將自己處理方向更改,包括根據需要切換佈局等,因此您需要在您的活動中實施,並處理您希望在其中進行的任何更改。

另外值得注意的是android:configChanges="orientation"只照顧風景 - >人像變化,而不是肖像風景。嘗試更改orientationorientation|keyboardHidden以處理這兩種情況。