简体   繁体   English

如何检查音频是否正在使用 Android MediaPlayer 播放?

[英]How to check if an audio is playing with Android MediaPlayer?

In a situation where I have a listview that in each list item when clicking is an audio and is played when clicked on the desired item.在我有一个列表视图的情况下,单击时每个列表项中都是音频,并且在单击所需项目时播放。

When you click on multiple items, the audio blends.当您单击多个项目时,音频会混合。

I would like to know how I can click on an item and play and if I want another item, when clicking it the previous audio stops and the audio of the clicaco item starts.我想知道如何单击一个项目并播放,如果我想要另一个项目,单击它时先前的音频停止并且 clicaco 项目的音频开始。

I tried to use the code below, but audios do not stop when I click on another item.我尝试使用下面的代码,但是当我单击另一个项目时音频不会停止。

@Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                mediaPlayer = MediaPlayer.create(MainActivity.this, caminhoAudio[position]);

                if ( !(mediaPlayer.isPlaying()) )
                {
                    tocarSom();
                }

            }
            });


    }

    public void tocarSom() {

            if (mediaPlayer != null)
            {
            mediaPlayer.start();
            }


            // LIBERAR MEMÓRIA
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                public void onCompletion(MediaPlayer mediaPlayer) {
                    mediaPlayer.release();

                };
            });

        }

Thank You!!!谢谢!!!

好吧,如果您的方法startAudio()自动执行开始播放歌曲所需的所有操作,则必须在mediaPlayer.release()之后调用startAudio()。

Do something like this. 做这样的事情。

if(mMediaPlayer!=null)
{
    mMediaPlayer.release();
    mMediaPlayer=null;
}
if(mMediaPlayer!=null)
{
//Fist stop the current playing raw file
mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer=null;

//Then Play the selected raw file.
tocarSom();

}else{

//If nothing is playing then Play the selected raw file or audio
tocarSom();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM