如何播放音频并等待完成后再继续播放?

3
如何播放音频并等待完成后继续播放?在这个问题中,我可以无限次播放:D
    ivSelect.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // Toast.makeText(context, "Hello", 1000).show();
            mMediaPlayer = MediaPlayer.create(context, sound);

            if (mMediaPlayer.isPlaying() == false) {
                mMediaPlayer.start();
                mMediaPlayer
                        .setOnCompletionListener(new OnCompletionListener() {
                            public void onCompletion(MediaPlayer mp) {
                                mp.release();

                            };
                        });
            }

        }
    });
2个回答

4
代码对于每次按钮点击都能正常工作。如果您希望音频自动重复播放,请使用:
 mMediaPlayer.setLooping(true); 

如果您希望当第一个声音完全播放后,第二个声音在按钮点击时开始播放, 请尝试在第一个声音播放时禁用您的按钮点击,然后在onCompleteListener完成时启用它... 类似这样:
ivSelect.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        // Toast.makeText(context, "Hello", 1000).show();
        mMediaPlayer = MediaPlayer.create(context, sound);
ivSelect.setClickable(false); //Disabling the button click
 mMediaPlayer.start();
}

启用音频播放完成后的点击

mMediaPlayer.setOnCompletionListener(new OnCompletionListener() 
                    {
                        @Override
                        public void onCompletion(MediaPlayer mp)
                        {
                            ivSelect.setClickable(true);

                        }
                    });

可能我的英语不太好,但我的意思是:当按钮被点击并立即再次点击时,会播放两个媒体,这不好。我希望在第一个音频播放结束后再播放。我希望在媒体没有播放时再播放:D - user2853683

0

试试这个

if(mMediaPlayer.isPlaying()){
mMediaPlayer.stop();
mMediaPlayer.release();
}

OP希望当前的播放完成后再开始下一个。 - Michael
那么这就是你需要的内容:http://developer.android.com/reference/android/media/MediaMetadataRetriever.html#METADATA_KEY_DURATION - RussVirtuoso

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接