Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MediaPlayer在将数据源设置为URL后未调用OnPreparedListener_Android_Android Mediaplayer - Fatal编程技术网

Android MediaPlayer在将数据源设置为URL后未调用OnPreparedListener

Android MediaPlayer在将数据源设置为URL后未调用OnPreparedListener,android,android-mediaplayer,Android,Android Mediaplayer,我正在使用媒体播放器从URL播放mp3。但在我将URL设置为数据源后,我的媒体播放器未调用PreparedListener。我调用了PrepareAsync()。URL正在浏览器中工作。我没有收到任何错误,所以请帮助我 这就是我设置liseners的方式。我实现了所有这些 mediaPlayer.setOnCompletionListener(this); mediaPlayer.setOnErrorListener(this); mediaPlayer.setOnPrepar

我正在使用媒体播放器从URL播放mp3。但在我将URL设置为数据源后,我的媒体播放器未调用PreparedListener。我调用了PrepareAsync()。URL正在浏览器中工作。我没有收到任何错误,所以请帮助我


这就是我设置liseners的方式。我实现了所有这些

 mediaPlayer.setOnCompletionListener(this);
    mediaPlayer.setOnErrorListener(this);
    mediaPlayer.setOnPreparedListener(this);
    mediaPlayer.setOnInfoListener(this);
    mediaPlayer.setOnBufferingUpdateListener(this);
这是我的听众

//Handle errors
    @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        //Invoked when there has been an error during an asynchronous operation.
        switch (what) {
            case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
                Log.d("MediaPlayer Error", "MEDIA ERROR NOT VALID FOR PROGRESSIVE PLAYBACK " + extra);
                break;
            case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
                Log.d("MediaPlayer Error", "MEDIA ERROR SERVER DIED " + extra);
                break;
            case MediaPlayer.MEDIA_ERROR_UNKNOWN:
                Log.d("MediaPlayer Error", "MEDIA ERROR UNKNOWN " + extra);
                break;
        }
        return false;
    }
这是我的听众

 @Override
    public void onPrepared(MediaPlayer mp) {
        //Invoked when the media source is ready for playback.
        startMedia();
    }

通过使用ExoAudioPlayer,我解决了这个问题。

不调用OnPreparedListner意味着onPrepared没有被调用。您需要先设置PreparedListner。你在这么做吗?给我们看一点代码。要获取错误,请使用SetOneErrorListener,如果出现错误,您将在onError上获得错误。mediaPlayer.setOnCompletionListener(此);mediaPlayer.setOneErrorListener(此);mediaPlayer.setOnPreparedListener(这个);mediaPlayer.setOnInfo侦听器(此);mediaPlayer.setOnBufferingUpdateListener(这个);这是我设置侦听器的方式。请使用exomedia库从url播放音频