MediaPlayer.isplaying()不返回为true



我有问题。我正在使用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

最新更新