我在當前正在使用的應用程序中使用MediaPlayer類。我想在我的Activity的生命週期中堅持MediaPlayer類的一個實例。我放開了從MediaPlayer的類中的資源;在onPause(){}活動的方法,然而,當活動開始我看到下面的警告在logcat的窗口彈出:Android:MediaPlayer未完成發佈
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();
欣賞任何建議,
感謝,
你可以在onCreate/onResume/onPause等包含你正在做的媒體播放器的相關代碼片段嗎? 「釋放資源」可能會有些含糊不清。 – Tim
@Tim Hi Tim添加了一些代碼,謝謝! – magritte