0
Я пишу игру, где нужно много раз воспроизводить несколько звуковых файлов.Проблема с памятью, когда Play & Stop Audio файл несколько раз
Я использую объект MediaPlayer для перемещения файлов и воспроизведения каждый раз, когда это необходимо. После кода я использую:
try {
if (commonPlayer.isPlaying()) {
commonPlayer.stop();
commonPlayer.release();
}
commonPlayer = null;
switch (gameAction) {
case 1:
commonPlayer = MediaPlayer.create(context, R.raw.tap);
break;
case 2:
commonPlayer = MediaPlayer.create(context, R.raw.score);
break;
case 3:
commonPlayer = MediaPlayer.create(context, R.raw.die);
break;
}
commonPlayer.start();
} catch (Exception e) {
log("Exception: " + e.getMessage());
}
Но после игры несколько раз это прекратить играть с следующей ошибкой:
01-24 22:25:51.215 263 28967 I ACodec : codec does not support config priority (err -2147483648)
01-24 22:25:51.216 263 28967 I MediaCodec: MediaCodec will operate in async mode
01-24 22:25:51.219 22703 22703 I Score : 3, 15
01-24 22:25:51.220 263 28965 E AudioFlinger: not enough memory for AudioTrack size=131176
01-24 22:25:51.221 263 28965 D MemoryDealer: AudioTrack (0xa15abbd0, size=4194304)
.......
0x00260980 | 0x00020080 | A
01-24 22:25:51.221 263 28965 D MemoryDealer:
01-24 22:25:51.221 263 28965 E AudioFlinger: createTrack_l() initCheck failed -12; no control block?
01-24 22:25:51.221 263 28965 E AudioTrack: AudioFlinger could not create track, status: -12
01-24 22:25:51.221 263 28965 E AudioSink: Unable to create audio track
01-24 22:25:51.221 263 28965 W NuPlayerRenderer: openAudioSink: non offloaded open failed status: -19
01-24 22:25:51.221 263 28962 E NuPlayer: received error(0xffffffed) from audio decoder, flushing(0), now shutting down
01-24 22:25:51.221 263 28962 D NuPlayerDriver: notifyListener_l(0xab839b00), (100, 1, -19)
01-24 22:25:51.221 22703 22773 E MediaPlayer: error (1, -19)
01-24 22:25:51.221 263 28965 W NuPlayerRenderer: onDrainAudioQueue(): audio sink is not ready
Любое предложение о том, как играть звуковой файл несколько раз?
В наблюдении я нашел, что это может привести NLP в медиа слушателем и с нулевой проверки истории будет такой же, я думаю. То, что я действительно нашел, поддерживает ** commonPlayer.release(); ** из проверки isPlaying. Это помогло мне. – CoDe
ответ на этот вопрос решает вашу проблему? если да, пожалуйста, примите ответ :) или дайте мне знать для любых необходимых изменений .. –
Я добавил вопрос с вашим ответом. Также добавлено, что можно сделать, и это то, что работает для меня. – CoDe