安卓:打对方经过两次发出一声 [英] Android: Playing two sounds one after the other

查看:124
本文介绍了安卓:打对方经过两次发出一声的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想打两个声音项目,一前一后

I am trying to play two sound items, one after the other

MediaPlayer mp        = null;

 protected void produceErrorSound(int index) {
        if (mp != null) {
            mp.reset();
            mp.release();
        }


        mp = MediaPlayer.create(this, index);

        mp.start();
    }


public void correctAnswerAndNext(){
    produceErrorSound(R.raw.right1) ;
    produceErrorSound(R.raw.right1) ;
}

,但只有第二声音。
有没有替代方法?

but only second sound is produced. is there any alternative approach?

推荐答案

我看不到你的code的等待机制。

I can't see any wait mechanism in your code.

您可以使用 onCompletionListener 接收回调时你的第一个MediaPlayer的结束播放。在这一点上,你可以开始第二次的MediaPlayer。

You can use an onCompletionListener to receive a callback when your first MediaPlayer has finished playback. At that point you can start the second MediaPlayer.

在杰利贝恩(及后续版本)的另一种方法是使用音频链接功能(即<一href=\"https://developer.android.com/reference/android/media/MediaPlayer.html#setNextMediaPlayer%28android.media.MediaPlayer%29\"相对=nofollow> setNextMediaPlayer )作为当前播放完毕自动尽快启动另一个MediaPlayer的。像这样的东西(我忽略了的setDataSource 等为简洁的电话):

An alternative way in Jellybean (and later versions) is to use the audio chaining functionality (i.e. setNextMediaPlayer) to automatically start another MediaPlayer as soon as the current one has finished playing. Something like this (I've omitted the calls to setDataSource etc for brevity):

mediaPlayer1.prepare();
mediaPlayer2.prepare();   
mediaPlayer1.start();
mediaPlayer1.setNextMediaPlayer(mediaPlayer2);

这篇关于安卓:打对方经过两次发出一声的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆