gpt4 book ai didi

android - 使用 MediaPlayer 同时播放多个音频

转载 作者:行者123 更新时间:2023-12-05 00:00:09 24 4
gpt4 key购买 nike

我在同时播放两个 MediaPlayer 时遇到问题。

在我的代码中,我制作了一个spinner 让用户选择他的第一首歌曲,然后选择第二首歌曲,在用户选择第一首歌曲的那一刻,它开始播放,当用户选择将与第一首歌曲一起播放的第二首歌曲。

但问题是,当用户选择第二首歌曲时,它停止了第一首...

我该怎么做才能修复它?

是的!

代码:

public void setSpinner() {
Spinner spine = (Spinner) findViewById(R.id.spinner3);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.song, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spine.setAdapter(adapter);
final MediaPlayer mp1 = new MediaPlayer();
spine.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String st = parent.getItemAtPosition(position).toString();
if (st.equals("First Song")) {
setMedia1(mp1);
mp1.start();
}
if (st.equals("Second Song")) {
setMedia2(mp1);
mp1.start();
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
public void setMedia1(MediaPlayer mp2) {

Bundle b1=getIntent().getExtras();
float s = b1.getFloat("speed");
Bundle b2=getIntent().getExtras();
float v = b2.getFloat("volume");

try {
String s1 = getIntent().getStringExtra("song1");
final Uri uri1 = Uri.parse(s1);
mp2.setDataSource(getApplicationContext(), uri1);
mp2.prepare();
mp2.setVolume(v,v);
mp2.setPlaybackParams(mp2.getPlaybackParams().setSpeed(s));
} catch (Exception e) {
}

}
public void setMedia2(MediaPlayer mp2) {

Bundle b3 = getIntent().getExtras();
float sp1 = b3.getFloat("speed1");
Bundle b4 = getIntent().getExtras();
float vo1 = b4.getFloat("volume1");

try {
String s2 = getIntent().getStringExtra("song3");
final Uri uri2 = Uri.parse(s2);
mp2.setDataSource(getApplicationContext(), uri2);
mp2.prepare();
mp2.setVolume(vo1, vo1);
mp2.setPlaybackParams(mp2.getPlaybackParams().setSpeed(sp1));
} catch (Exception e) {
}
}

最佳答案

试试 SoundPool,它是同时处理多个音频文件的更好方法。

这是文档:

http://developer.android.com/reference/android/media/SoundPool.html

例子如下:

http://examples.javacodegeeks.com/android/android-soundpool-example

希望对你有帮助

Reference

关于android - 使用 MediaPlayer 同时播放多个音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50176716/

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