2013-01-25 36 views
5

thể trùng lặp:
Android: Keep MediaPlayer running during Activity screen orientation updateLàm thế nào để có Hoạt động tiếp tục streaming video khi định hướng được thay đổi

ứng dụng YouTube Android có một số tính năng:

Khi màn hình của thiết bị là trong ảnh chân dung và bạn xem video và thay đổi hướng của màn hình thành ngang, video được hiển thị toàn màn hình và danh sách video có liên quan biến mất. Nó tiếp tục phát mà không cần khởi động lại hoặc khởi động lại.

Portrait:

Cảnh:

Những vấn đề là:

  • Khi tôi tạo ra các file layout XML của tôi là "bố trí" và " layout-land ", của tôi Hoạt động bị phá hủy khi đi từ dọc sang ngang. Tôi phải làm lại video.

  • Nếu tôi đặt Androidmanifest.xml để sử dụng android:configChanges="orientation", thì hoạt động sẽ không bị hủy nhưng bố cục không thay đổi.

Tôi làm cách nào để đạt được điều này?

+0

@slhck Làm cách nào để thay đổi bố cục của tôi khi thay đổi từ dọc sang ngang? – tungdx

+0

@slhck Nhưng câu trả lời không chính xác thỏa đáng tôi muốn nói. –

+0

@ClassStacker Mà không làm cho nó ít hơn một câu hỏi trùng lặp, không may. Bạn có thể đặt một tiền thưởng vào nó, ví dụ. tungdx, tôi không biết — bạn phải khởi động lại Hoạt động để vẽ lại bố cục. Có lẽ bạn có thể chọn lọc vô hiệu hóa một số yếu tố của bố cục bạn không cần? – slhck

Trả lời

0

Bạn cần một Chủ đề cho trình phát đa phương tiện (tốt, bạn đã có một trình phát). Hoạt động của bạn có thể xác định một cách đáng tin cậy xem nó có bị hủy do thay đổi cấu hình hay không, xem câu trả lời của tôi tại đây: How to save/restore(update) ref to the dialog during screen rotation?(I need ref in onCreate method of activity.)

Vì vậy, hoạt động của bạn không được tạo lại; tất cả những gì bạn cần làm là gắn lại trình phát với nó.

+0

Tôi hiểu ý tưởng của bạn. Tôi làm theo nó nhưng nó có một vấn đề, khi tôi xoay thiết bị, bố trí thay đổi để bố trí đất và mediaplyer đã tiếp tục chạy, nhưng tôi có thể nghe thấy âm thanh nhưng tôi không thể xem video. Làm thế nào tôi có thể sửa chữa nó? Ở đây mã của tôi: https://docs.google.com/file/d/0B4mVLTWlnazzUmpVVndOZDJaTTA/edit – tungdx

+0

Tôi thấy bạn đã thành công theo cách tiếp cận sơ đồ. Tuy nhiên, bạn chưa đính kèm MediaPlayer vào Hoạt động mới được tạo của bạn.Bạn sẽ phải gọi 'setSurface()' trên đối tượng 'MediaPlayer' đã tồn tại sau khi thay đổi ngữ cảnh. –

+0

@tungdx Tôi đã xem xét mã của bạn lần thứ hai. Người ta có thể mong đợi điều này để làm việc rồi. Có nhật ký cung cấp bất kỳ thông tin chi tiết nào không? –

0

Thêm android: configChanges = "orientation" vào tệp AndroidManifest của bạn;

Add:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
} 

Trong hoạt động Video của bạn;

+1

Wamasa: Bạn không hiểu mục tiêu của tôi. Dù sao thì cũng cám ơn bạn! – tungdx

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