6

我實現了嵌入視頻播放器的電子閱讀器,我需要一個選項來切換播放器的全屏模式。VideoView&Fullscreen&Orientation changes - Android

我的問題是:

這是上播放全屏視頻,讓用戶從這種狀態回來,他之前閱讀的頁面,並保持視頻的當前時間的最好方式。

另一種複雜的情況下,我需要處理的是:

有在縱向和橫向頁面的不同的視覺效果,如果肖像用戶切換全屏模式和旋轉設備,視頻應該去到風景模式,並重新調整視頻以適應屏幕,但如果用戶從此頁面返回,他應該再次返回肖像。

如果需要,我可以提供更多信息。 在此先感謝

回答

9

我可以推薦使用ActivityVideoView在佈局。

您可以保存在這樣

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    if (mVideoView.isPlaying()) outState.putInt("pos", mVideoView.getCurrentPosition()); 
} 

方向改變位置。然後恢復位置,並恢復在onCreate方法打

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.video); 

    mVideoView = (VideoView) findViewById(R.id.video); 
    MediaController mediaController = new MediaController(this); 
    mediaController.setAnchorView(mVideoView); 
    mVideoView.setMediaController(mediaController); 
    mVideoView.setOnCompletionListener(this); 

    Intent intent = getIntent(); 
    path = intent.getExtras().getString("path"); 

    int pos = 0; 
    if (savedInstanceState != null) { 
     pos = savedInstanceState.getInt("pos"); 
    } 

    playVideoFromPos(pos); 
} 
+1

其實,最大的問題是關於從頁面移除舊videoview和通過方向變化保持狀態一致。 (不重新創建背景活動) – 2012-07-11 15:15:19

+0

好的,我們得到了mVideoView.getCurrentPosition(),以便如何將視頻設置爲此值。而主要問題是要花時間播放多少視頻並將其設置爲 – Sameer 2012-12-15 07:37:22

+1

'mVideoView.getCurrentPosition()'會告訴你播放了多少視頻,並將其保存到'outState'。然後在'onCreate'中檢查'savedInstanceState'是否有這個節省的時間。在'playVideoFromPos(int pos)'方法中,你可以調用'mVideoView.seekTo(pos);'和'mVideoView.start();'。這將做你需要的。 – vasart 2012-12-15 08:23:04