【问题标题】:Video playing on android 2.2 and 2.3 but not on Android 4.0.4在 android 2.2 和 2.3 上播放视频,但在 Android 4.0.4 上不播放
【发布时间】:2012-08-15 05:59:40
【问题描述】:

我正在开发 android 应用程序来播放实时流。他们在 OS 2.2 和 2.3 上运行良好。给我们的新设备是 OS 4.0.4,每次我都会出错; onErrorListener() 方法中的媒体错误未知。这是我的代码

    mVideoView = new VideoView(this);// (VideoView)
    mVideoView.setId(id_mVideoview);

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

    mVideoView.setLayoutParams(lp);

    mVideoView.setOnKeyListener(this);
    mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {

        public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
            // TODO Auto-generated method stub
            mHandler.removeCallbacksAndMessages(null);
            Toast.makeText(
                    streamplayer_filmstrip.this," Video cannot be        played", Toast.LENGTH_LONG)
                    .show();
            try {
                Thread.sleep(3000);
                Go_Back();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                Log.d("VidError",
                        "Exception :: " + e.toString() + e.getMessage());
                Toast.makeText(streamplayer_filmstrip.this,
                        "On Error Ex ::" + e.toString(), Toast.LENGTH_LONG)
                        .show();
                e.printStackTrace();
            }
            return true;
        }
    });

    mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

        public void onPrepared(MediaPlayer arg0) {
                    // doneSomething        
                    });


       mVideoView.setVideoURI(Uri.parse(getStreamURL("some_url_for_live_stream")));

        mVideoView.postInvalidateDelayed(100);
        mVideoView.setMediaController(null);
        if (mView1.getVisibility() == View.GONE)
            mVideoView.requestFocus();
        else {
            ll_PopUp.bringToFront();
            mView1.requestFocus();
        }
        mVideoView.start();

非常感谢任何帮助

【问题讨论】:

    标签: android media-player android-videoview live-streaming


    【解决方案1】:

    根据设备类型,Android 中的视频处理方式不同,您应该提及您的设备以及您使用的流媒体类型,android 支持 rtsp 流媒体,对于其他版本,您的设备可能支持流媒体,也可能不支持流媒体输入。

    【讨论】:

    • 感谢 vaibhav。我们正在安卓/谷歌电视盒上进行测试。这个问题非常伤脑筋。在带有 OS 2.2 和 2.3 rtsp 流的机器上播放正常,但在 stopPlayback() 上停止系统。在 OS 4.0 上,流使用 http 运行,而不会在 stopPlayback() 上停止系统。然而,他们今天没有比赛。您对如何处理支持问题有任何想法吗?
    • 一种方法是使用您自己的编解码器,这非常昂贵,当我为 android 开发流媒体问题时,每个设备上的问题都不同,据我记得我们最终使用了 flash,这需要一些更改除了使应用程序在非闪存设备上无法使用之外的服务器。
    • 我确实认为它与流的编码有关。如果您尝试链接可用here,您会看到它运行顺利(至少在我得到的设备上)。
    猜你喜欢
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2017-12-23
    • 2017-01-25
    • 1970-01-01
    相关资源
    最近更新 更多