我有问题。我正在使用MediaPlayer.isplaying((命令,但从来没有返回真实。当音频播放时,它仍然允许另一个音频与第一个音频一起播放。我已经使用了以下命令:
1-
If (mediaPlayer.isPlaying () == true)
{
MediaPlayer.stop ();
MediaPlayer.release ();
} Else if (mediaPlayer.isPlaying () == false)
{
PlaySom ();
}
2 -
If (! (MediaPlayer.isPlaying ()))
{
PlaySom ();
}
但是没有结果,同时播放了几个音频,我希望您只玩一个音频。
有人知道该问题的任何解决方案还是媒体播放器的某些替代方法?isplaying((命令?
非常感谢!
我的代码:
private static MediaPlayer mediaPlayer;
//Eveso de Clique
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mediaPlayer = MediaPlayer.create(MainActivity.this, caminhoAudio[position]);
if (!(mediaPlayer.isPlaying()))
{
tocarSom();
Toast.makeText(getApplicationContext(),"Aguarde o término do áudio para executar o outro.",Toast.LENGTH_LONG).show();
}
}
});
//iniciar o som
public void tocarSom() {
if (mediaPlayer != null)
{
mediaPlayer.start();
}
// LIBERAR MEMÓRIA
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mediaPlayer) {
mediaPlayer.release();
};
});
}
答案是因为有人可以从我的答案中获得帮助...
您需要创建最高级别(在类声明的下方(媒体播放器
private val player =
MediaPlayer().apply {
setOnPreparedListener { start() }
setOnCompletionListener { reset() }
}
之后,此创建播放器声音方法可以从存储中播放音频
private fun playBeats(context: Context, id: Uri) {
player.run {
reset()
setDataSource(context,id)
prepareAsync()
}
}
如果您喜欢我的答案,请找到我的YouTube频道并订阅以帮助我。
YouTube频道名称:codebage