我正在我目前正在开发的应用程序中使用 MediaPlayer 类。我想在 Activity 的整个生命周期中保留 MediaPlayer 类的一个实例。我在活动的 onPause() { } 方法中从 MediaPlayer 类释放资源,但是当活动开始时,我看到 LogCat 窗口中弹出以下警告:
W/MediaPlayer-JNI(16795): MediaPlayer finalized without being released
知道我在这里做错了什么或如何删除此警告吗?它似乎没有引起任何问题,声音也很好。
我有太多代码要发布,因为我包装了一些对象以允许管理状态(MediaPlayer 类当前不提供状态信息),以及各种其他原因,但代码差不多:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
initialiseSounds(this);
}
@Override
protected void onPause()
{
soundManager.releaseResources();
}
@Override
protected void onResume()
{
initialiseSounds(this);
}
在我的 SoundManager 类中使用此方法:
public void releaseResources()
{
player.release();
}
在 initialiseSounds 我正在做:
MediaPlayer player = new MediaPlayer();
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
AssetFileDescriptor assetFileDescriptor = context.getResources().openRawResourceFd(resourceId);
setDataSource(player, assetFileDescriptor);
当我想播放曲目时,我会:
player.prepare();
player.start();
感谢任何建议,
谢谢,