Android - MediaPlayer即使在Android 4.0+上准备流之前就准备好了

Qua*_*Ali 7 java android video-streaming media-player android-4.2-jelly-bean

我面临的问题是,每当我的应用程序在Android 4.0 +上播放流时,即使在加载流之前也会调用OnPrepare方法MediaPlayer.OnPreparedListener,因此我无法向用户表明流下载/缓冲正在进行中.我已经找到了同样的问题,但没有回答 这是我正在做的事情.

   @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);  
        playVideo(someRtspUrl);
    }
    private void playVideo(String url) {
        // if app is running on Google TV then change RTSP link to HLS
        if (url.contains("rtsp")) {

            // split the RTSP URL and make it as HLS
            String videoUrlParts[] = url.split("\\?");
            url = videoUrlParts[0].replace("rtsp", "http") + "/playlist.m3u8";

            if (videoUrlParts.length > 1)
                url += "?" + videoUrlParts[1];
        }   mVideoView.setVideoURI(Uri.parse(url));
        mVideoView.requestFocus();
        mVideoView.setOnCompletionListener(this);
        mVideoView.setOnPreparedListener(this); 

    }



    @Override
        public void onPrepared(MediaPlayer player) {
            dismissProgressDialog();
            mVideoView.start();
        }
Run Code Online (Sandbox Code Playgroud)

此代码在Google TV和其他Android 3.0+以及<4.0+设备上正常运行

小智 1

我对媒体播放器没有太多经验。但我这边有一些建议/疑问

  1. 没有打电话准备。如果你正在这样做,你尝试过prepareAsync吗?
  2. 您没有使用传递给 onPrepared 回调的 mediaplayer 实例。您可能尝试启动错误的媒体播放器。