mediaPlayer.stop(); 。重启();发布();与onClick按钮进行交互->始终出现错误

我需要一些建议或帮助... 我有音频流和开/关按钮。 我不明白发生了什么,..每次我使用playMedia()启动流时,仍然可以。在stopMedia()的帮助下停止后,无法重新启动音频。我每次都会出错。 我在哪里错了?

    /// Create Media Player ///
public void mediaPlayer() {
    mediaPlayer = new MediaPlayer ();
    mediaPlayer.reset();
    try {
        mediaPlayer.setDataSource(music_url);
        mediaPlayer.setaudioStreamType ( AudioManager.STREAM_MUSIC );
        mediaPlayer.setLooping ( false );
        mediaPlayer.prepareAsync ();
        mediaPlayer.setOnPreparedListener ( mp -> Toast.makeText ( Mainactivity.this,"Buffering...",Toast.LENGTH_LONG) .show () );
        mediaPlayer.setOnCompletionListener( mp -> mediaPlayer.release () );
        mediaPlayer.setonerrorlistener ( (mp,what,extra) -> {
            mediaPlayer.stop ();
            Toast.makeText ( Mainactivity.this,"Audio Streaming is Unavailable",Toast.LENGTH_LONG) .show ();
            play.setBackgroundResource (R.drawable.play_btn);
            return false;
        } );
    } catch (IOException e) {
        e.printStackTrace ();
    }
}

其他功能

public void startMedia(){
    mediaAudioManager.requestAudioFocus ( mFocusRequest );
    play.setBackgroundResource (R.drawable.pause_btn);
    mediaPlayer.start();
    Log.d(TAG,"media playing");
}
public void pauseMedia(){
    play.setBackgroundResource (R.drawable.play_btn);
    mediaPlayer.pause ();
    Log.d(TAG,"media pause");
}

// onCreate //

mediaPlayer ();
play = findViewById ( R.id.playButton );
play.setOnClicklistener ( v -> {
    if(!mediaPlayer.isPlaying ()){
        startMedia ();
    } else {
        pauseMedia ();
    }
} );

mediaPlayer.isPlaying()--->总是报错;

尝试使用简单的boolean check;

play = findViewById ( R.id.playButton );
play.setOnClicklistener ( v -> {
    if(!check){
        startMedia ();
    } else {
        pauseMedia ();
    }
} );

无效...错误!

尝试修改

stopMedia();和startMedia();在--->

public void startMedia(){
    mediaAudioManager.requestAudioFocus ( mFocusRequest );

    play.setBackgroundResource (R.drawable.pause_btn);
    Toast.makeText ( Mainactivity.this,"Audio Streaming",Toast.LENGTH_SHORT) .show ();
    if(mediaPlayer == null){
        mediaPlayer();
        mediaPlayer.start ();
    } else {
        mediaPlayer.start ();
        Log.d ( TAG,"media playing!" );
    }
}

    public void stopMedia(){
        play.setBackgroundResource (R.drawable.play_btn);

/// --- > all combinations variants have been tested No work < ---
        //mediaPlayer.stop();
        //mediaPlayer.onSeek(0);
        //mediaPlayer.pause();
        //mediaPlayer.reset();
        //mediaPlayer.release();

        mediaPlayer = null;
    }

预期结果: 播放器每次从流的更新位置重新启动。这是我广播电台的实时音频流。

|或|

每次我使用--->按钮play停止音频流并重新启动时, 再次创建播放器...

我不知道,整个故事都不是一件好事,因为按照我们的逻辑,我们可以顺利地前进...但这是行不通的。

谢谢您能以某种方式帮助我...

p.s。 mediaPlayer.pause();始终可以使用任何代码组合--->,但我不需要在实时audioStream中暂停...

sangshan 回答:mediaPlayer.stop(); 。重启();发布();与onClick按钮进行交互->始终出现错误

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2895788.html

大家都在问