Tôi sử dụng MediaPlayer để phát một tệp MP3. Hiện tại tôi đã tắt các thay đổi hướng màn hình bằng cách sử dụngAndroid: Giữ MediaPlayer chạy trong khi cập nhật hướng màn hình Hoạt động
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation"
trong tệp kê khai. Tôi muốn hỗ trợ chế độ phong cảnh ngay bây giờ - tức là đã xóa các thẻ đó - nhưng có vấn đề trong suốt quá trình hủy/tạo, trình phát bị dừng lại và sau đó khởi động lại. Điều này là ổn và tôi thực sự làm điều này ngay cả theo cách thủ công trong onPause()
để dừng trình phát khi hoạt động diễn ra ở chế độ nền.
Để giữ cho nó chạy trong các thay đổi định hướng ngay bây giờ, tôi đã cố gắng làm cho nó tĩnh (và sử dụng Ngữ cảnh ứng dụng để tạo nó một lần). Tất nhiên, khi tôi xóa player.stop()
trong onPause()
bây giờ, nó thực hiện những gì tôi muốn - tốt, cho đến khi hoạt động diễn ra trong nền.
Vì vậy, hai câu hỏi:
- Làm thế nào tôi có thể xác định xem các hoạt động sẽ được tái tạo trực tiếp sau khi cuộc gọi đến
onStop()
- Hoặc: Làm thế nào tôi có thể giữ
MediaPlayer
chạy trong chu kỳ đó, chưa ngăn chặn nó khi ứng dụng chạy ở chế độ nền?
Nó không được gọi do 'android loại bỏ: configChanges' trong biểu hiện. – sunside
Nếu bạn muốn phân biệt giữa khi bạn chỉ thay đổi cấu hình và khi bạn thực sự dừng lại, tôi không biết cách nào khác để thực hiện nó ngoài việc sử dụng onConfigurationChanged(). Mà tôi đoán có nghĩa là bạn sẽ phải giữ 'android: configChanges =" orientation "' trong tệp kê khai của bạn: \ –
Đó là những gì tôi lo sợ ... – sunside