gpt4 book ai didi

java - 同时播放和暂停多个音频文件

转载 作者:行者123 更新时间:2023-12-02 12:37:11 24 4
gpt4 key购买 nike

我正在开发一个音乐播放器应用程序,在我的应用程序中我想通过单击按钮播放所有 mp3 文件。我可以使用 MediaPlayer 做到这一点,但无法使用“暂停”按钮暂停所有歌曲。如何立即暂停所有正在播放的歌曲

播放按钮

  for (int i = 0; i < InstrumentCountSize; i++) {
mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(instruments_count.get(i));
mp.prepare();
mp.start();

}

暂停按钮

   if (mp != null) {
try {
mp.stop();
mp.reset();
mp.release();
mp = null;
} catch (Exception e) {
e.printStackTrace();
}
}

最佳答案

您的单个​​ mp 变量只能引用单个 MediaPlayer,因此您的暂停按钮代码仅尝试释放最后 您创建的 MediaPlayer 实例。您需要保留对所有 MediaPlayer 实例的引用。

[已更新]

像这样的东西应该效果更好:

// This needs to replace your "mp" variable.
List<MediaPlayer> mps = new ArrayList<MediaPlayer>();


// Play button code ....
// Make sure all the media are prepared before playing
for (int i = 0; i < InstrumentCountSize; i++) {
MediaPlayer mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(instruments_count.get(i));
mp.prepare();
mps.add(mp);
}
// Now that all the media are prepared, start playing them.
// This should allow them to start playing at (approximately) the same time.
for (MediaPlayer mp: mps) {
mp.start();
}


// Pause button code ...
for (MediaPlayer mp: mps) {
try {
mp.stop();
mp.reset();
mp.release();
} catch (Exception e) {
e.printStackTrace();
}
}
mps.clear();

关于java - 同时播放和暂停多个音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45092926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com