gpt4 book ai didi

java - android 多个媒体播放器声音崩溃

转载 作者:行者123 更新时间:2023-12-01 13:47:34 24 4
gpt4 key购买 nike

我想要加载多种声音

final MediaPlayer mp = MediaPlayer.create(this, R.raw.testsnd);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.testsnd2);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.testsnd3);

等等。

我在点击监听器中启动了声音

button1.setOnClickListener(new View.OnClickListener() { 
public void onClick(View v) {
mp.start();

}};

它必须是最终的 mp.start();不会在听众中看到有没有办法在不同的声音之间切换,因为媒体播放器会使应用程序崩溃如果我多次使用这个

如果可能的话可以使用set tag/get tag来进行切换吗?

请帮忙!

最佳答案

MediaPlayer 有一个我相信您忽略的状态机。静态创建方法是一次性交易的快捷方式。如果您希望多次使用 MediaPlayer,请执行以下操作:

final MediaPlayer mp1 = new MediaPlayer();

button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick() {
try {
mp1.reset();
mp1.setDataSource(YourClass.this,
Uri.parse("android.resource://com.your.package/" + R.raw.testsnd);
mp1.prepare();
mp1.start();
}
catch (Exception ex) {
// handle error
}
}
}

替换包名和类名以及推断多个 MediaPlayer 的想法应该很简单。除非声音可以同时播放,否则您很可能在任何给定时间只需要一个。另外,完成后不要忘记调用release()。

如果声音很短,您可能需要考虑使用 SoundPool还有。

关于java - android 多个媒体播放器声音崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247477/

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