首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SoundPool连续播放两个声音

用SoundPool连续播放两个声音
EN

Stack Overflow用户
提问于 2019-03-07 20:49:28
回答 1查看 178关注 0票数 1

实际上,我想按顺序播放raw文件夹中的所有声音。当我点击按钮时,只播放第一个按钮。我将非常感谢你的帮助。这是我的代码:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
private SoundPool soundPool;
private int sound1, sound2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        AudioAttributes audioAttributes = new AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
                .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                .build();

        soundPool = new SoundPool.Builder()
                .setMaxStreams(2)
                .setAudioAttributes(audioAttributes)
                .build();
    } else {
        soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
    }

    sound1 = soundPool.load(this, R.raw.a, 1);
    sound2 = soundPool.load(this, R.raw.d, 1);

}
public void playSound(View v) {
    soundPool.play(sound1, 1, 1, 0, 0, 1);
    soundPool.play(sound2, 1, 1, 0, 0, 1);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    soundPool.release();
    soundPool = null;
}
}
EN

回答 1

Stack Overflow用户

发布于 2021-11-21 09:15:10

我使用了Howard Liu的SoundPoolPlayer类,它是SoundPool的包装器,用于计算音频文件播放的持续时间(使用MediaPlayer),并在播放完成后使用postDelayed调用自定义的OnCompletionListener事件。

在处理OnCompletionListener事件时,您只需要开始播放下一个音频文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55044198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档