2013-03-16 2 views
2

Я получаю мелодии по умолчанию в моей деятельности:Как .release() MediaPlayer, созданный RingtoneManager?

remindRingtoneView = (TextView) findViewById(R.id.remind_ringtone); 

remindRingtoneView.setText(RingtoneManager.getRingtone(
      NewReminder.this, ringtone_uri).getTitle(
      NewReminder.this)); 

После этой линии я получил строку отладки в LogCat с тегом = «Мелодия» и сообщение =

'Successfully created a local player'.

Когда я закончил активность и система сборки мусора сделать это хорошая работа, я получил сообщение предупредит в LogCat =

'MediaPlayer finalized without being released'. 

Как может освободить его?

Ответ:

Ringtone remind_ringtone = RingtoneManager.getRingtone(
      NewReminder.this, ringtone_uri);   
remindRingtoneView.setText(remind_ringtone.getTitle(NewReminder.this)); 
remind_ringtone.stop(); 

ответ

6

В вашей программе, RingtoneManager.getRingtone возвращает объект Ringtone класса. Если мы рассмотрим этот объект как mRingTone, то при вызове mRingTone.stop() будет выпущен объект MediaPlayer.

+0

Спасибо! Я обновил сообщение с вашим решением. –

+0

@SergeiGrabak Спасибо ... Я рад, что решение сработало для вас – Ganesh

+1

@Ganesh Я тоже раздражался этим сообщением logcat и в итоге достиг того же самого вывода, описанного здесь (как только я наконец понял, что «Ringtone» вызывал его). Было бы хорошо, если бы эти вещи были задокументированы! – dlf

Смежные вопросы