java – Android – MediaPlayer即使在Android 4.0上准备流之前就准备好了

我面临的问题是,只要我的应用程序在 Android 4.0上播放流,就会在加载流之前调用MediaPlayer.OnPreparedListener的OnPrepare方法,因此我无法向用户表明流下载/缓冲正在进行中. I have already found a question of the same kind but not answered
这是我正在做的事情.
@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();
        }

代码在Google TV和其他Android 3.0上运行正常,并且< 4.0设备

解决方法

我对媒体播放器没有多少经验.但是我的一些建议/疑问

>没有准备的电话.如果您这样做,您是否尝试过prepareAsync?>您没有使用传递给onPrepared回调的mediaplayer实例.您可能有可能尝试启动错误的媒体播放器.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...