2012-02-09 34 views
5

Cách nào đúng để tắt một số MediaController với MediaPlayer được đính kèm?Cách nào đúng để ngắt kết nối MediaController?

Bạn không thể làm mediaController.setMediaPlayer(null) - mà ngay lập tức gọi updatePausePlay, tham chiếu đến giá trị rỗng.

Bạn không thể gọi mediaPlayer.release(), vì MediaController sắp gọi MediaPlayer # getCurrentPosition và ném ra một IllegalStateException sau khi release() đã được gọi.

+0

thử gọi 'mediaPlayer.reset() 'trước khi' mediaPlayer.release() ' – Yahia

Trả lời

4

thử đoạn mã dưới đây, theo thứ tự này

mediaController.hide(); 
mediaPlayer.stop(); 
mediaPlayer.release(); 
+0

Nhưng _why_ Bạn nghĩ đây là đúng cách để ngăn chặn nó, không chỉ là một cái gì đó hoạt động ngay bây giờ và sẽ thất bại trong tuần tới? –

+0

Không chắc chắn 100% về điều này nhưng đây là dự đoán của tôi là tại sao nó đúng cách. 'mediaController.hide()' ngăn không cho MediaController hiển thị và do đó truy vấn 'mediaPlayer'. Một khi nó không truy vấn 'mediaPlayer' nữa, bạn có thể tắt nó bằng cách dừng nó sau đó giải phóng nó (bạn có thể không cần phải dừng nó trước, chưa thử). Tôi không thực sự thấy bất kỳ cách nào mà điều này có thể thất bại trong tương lai trừ khi bạn cố gắng bắt đầu sử dụng cùng một MediaController một lần nữa sau khi bạn đã phát hành mediaPlayer mà không trỏ nó đến một cái gì đó mới. Điều này có vẻ phù hợp với tôi. – jp36

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