如何.release()由RingtoneManager实例化的MediaPlayer?

时间:2013-03-16 14:07:55

标签: android android-mediaplayer

我的活动中出现了默认铃声:

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

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

在此行之后,我在LogCat中有一个调试行,其中tag ='Ringtone'和message =

'Successfully created a local player'.

当我完成Activity和系统垃圾收集器时,我在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();

1 个答案:

答案 0 :(得分:6)

在您的程序中,RingtoneManager.getRingtone会将对象返回到Ringtone类。如果我们将此对象视为mRingTone,则调用mRingTone.stop()将释放MediaPlayer对象。