6

Tôi đã triển khai một Trình đọc sách điện tử có trình phát video được nhúng trên đó, tôi cần một tùy chọn để chuyển chế độ toàn màn hình khỏi trình phát.Thay đổi VideoView & Toàn màn hình & Định hướng - Android

Câu hỏi của tôi là như sau:

Đó là cách tốt nhất để chơi video trên toàn màn hình và cho phép người dùng quay trở lại từ trạng thái này sang trang anh đang đọc trước và cũng giữ cho thời gian hiện tại của video .

Một tình huống phức tạp tôi cần phải xử lý là:

Có visualizations khác nhau của một trang trên dọc và ngang, nếu toàn màn hình người sử dụng chuyển đổi trên bức chân dung và xoay điện thoại, video sẽ đi đến chế độ phong cảnh và rescale sự video để vừa với màn hình, nhưng nếu người dùng quay lại từ trang này, anh ấy sẽ quay lại chân dung một lần nữa.

Tôi có thể cung cấp thêm thông tin nếu cần. Cảm ơn trước

Trả lời

9

Tôi có thể khuyên bạn sử dụng Activity với bố cục VideoView.

Bạn có thể lưu vị trí trên sự thay đổi định hướng như thế này

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

Sau đó khôi phục vị trí và tiếp tục chơi trong phương pháp 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

Trên thực tế, vấn đề lớn nhất là về tháo videoview cũ từ trang và giữ cho nó thay đổi định hướng máng nhất quán của nhà nước. (Không tạo lại hoạt động nền) –

+0

Ok, chúng tôi đã có mVideoView.getCurrentPosition() để biết cách đặt thành videoview thành giá trị này. Và vấn đề chính là để có được thời gian bao nhiêu video đã chơi và thiết lập nó – Sameer

+1

'mVideoView.getCurrentPosition()' cung cấp cho bạn thời gian bao nhiêu video đã chơi và bạn lưu nó vào 'outState'. Sau đó, trong 'onCreate' bạn kiểm tra nếu' savedInstanceState' có thời gian lưu này. Trong phương thức 'playVideoFromPos (int pos)' bạn có thể gọi 'mVideoView.seekTo (pos);' và 'mVideoView.start();'. Điều đó sẽ làm những gì bạn cần. – vasart

Các vấn đề liên quan