【发布时间】:2019-10-27 07:52:12
【问题描述】:
我有一个 Android 应用,我想播放不同的声音。我的代码工作正常,但在播放一些声音后它会停止播放更多声音。 我的点击监听器在 ListView 中,所以它会循环播放不同的声音。 我认为问题是因为创建和停止,但我不明白如何解决它?
任何人都可以帮助我的代码吗?
MediaPlayer mp;
holder.alphabetSound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mp != null && mp.isPlaying()) {
mp.stop();
}
mp = MediaPlayer.create(activity,sound[index]));
mp.start();
}
});
Logcat:
2019-10-26 20:44:28.737 1319-8893/? E/MP3Extractor: Unable to resync. Signalling end of stream.
2019-10-26 20:44:28.744 1315-1946/? E/OMXNodeInstance: setConfig(52300a9:google.mp3.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001)
2019-10-26 20:44:28.751 1306-9450/? E/AudioFlinger: no more track names available
2019-10-26 20:44:28.751 1306-9450/? E/AudioFlinger: createTrack_l() initCheck failed -12; no control block?
2019-10-26 20:44:28.751 1320-10055/? E/AudioTrack: AudioFlinger could not create track, status: -12
2019-10-26 20:44:28.751 1320-10055/? E/AudioSink: Unable to create audio track
2019-10-26 20:44:28.752 1320-10052/? E/NuPlayer: received error(0xffffffed) from audio decoder, flushing(0), now shutting down
2019-10-26 20:44:28.752 9789-9801/ir.lariha.englishanimals E/MediaPlayer: error (1, -19)
2019-10-26 20:44:28.752 9789-9789/ir.lariha.englishanimals E/MediaPlayer: Error (1,-19)
【问题讨论】:
-
尝试在 stop() 之后调用 release() 来释放资源。确保 sound[index] 存在。
标签: android android-mediaplayer android-audiomanager