Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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 videoview导致用户界面元素阻塞_Android_Android Videoview - Fatal编程技术网

Android videoview导致用户界面元素阻塞

Android videoview导致用户界面元素阻塞,android,android-videoview,Android,Android Videoview,嗨,在我的android应用程序中,我正在使用videoview来流媒体播放我的视频。从我的视频来看,我面临着非常不受欢迎的行为。情况是这样的。我有活动A和活动B。活动A有一个简单的按钮,点击该按钮我就开始活动B,其中包含videoview,并在活动开始后立即开始播放视频。所以我的观察是这样的:一旦我开始活动B,它将调用setVideoURI并开始。回调方法很少,其中之一是setOnPreparedListener。当我在一段时间后调用start时,它正在执行setOnPreparedListe

嗨,在我的android应用程序中,我正在使用videoview来流媒体播放我的视频。从我的视频来看,我面临着非常不受欢迎的行为。情况是这样的。我有活动A和活动B。活动A有一个简单的按钮,点击该按钮我就开始活动B,其中包含videoview,并在活动开始后立即开始播放视频。所以我的观察是这样的:一旦我开始活动B,它将调用setVideoURI并开始。回调方法很少,其中之一是setOnPreparedListener。当我在一段时间后调用start时,它正在执行setOnPreparedListener,之后它将开始播放视频。但在执行setOnPreparedListener之前,如果我返回到活动A,它将在一段时间内阻止该活动UI。但如果我等到setOnPreparedListener得到执行,然后返回到活动A,那么它工作正常。这并不是所有的设备都能做到的,只有像moto g和nexus这样的谷歌设备才能做到。但我试过使用htc或intel设备,它工作正常。我的代码如下所示:

  VideoView mVideoView =(VideoView)findViewById(R.id.myVideo);  

              //Creating MediaController  
      MediaController mediaController= new MediaController(this);  
          mediaController.setAnchorView(mVideoView);          

        //specify the location of media file  
     Uri uri=Uri.parse("http://abcExample.com/playlist.m3u8");          

        //Setting MediaController and URI, then starting the videoView  
     mVideoView.setMediaController(mediaController);  
     mVideoView.setVideoURI(uri);          
     mVideoView.requestFocus();  
     mVideoView.start();  


     mVideoView.setOnErrorListener(new OnErrorListener() {

            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {

                Log.i("this is video view sample ... ", "this is video view sample ... this is on error listener ");
                return true;
            }
        });

        mVideoView.setOnPreparedListener(new OnPreparedListener() 
        {
            @Override
            public void onPrepared(MediaPlayer mp) 
            {
                Log.i("this is video view sample ... ", "this is video view sample ... this is on prepared listener ");
            }
        });

        mVideoView.setOnCompletionListener(new OnCompletionListener() 
        {
            @Override
            public void onCompletion(MediaPlayer mp) 
            {
                Log.i("this is video view sample ... ", "this is video view sample ... this is on complete listener ");
            }
        });  

我是错过了什么还是做错了什么?我需要一些帮助。谢谢。

我对videoview也有同样的行为。我在寻找解决办法,但什么也没找到。也许,做一个新任务可以解决这个问题。我会试试

有人知道吗?我已经用mp4和hls视频进行了测试。对于hls视频,它给出了这个问题,而对于mp4,它工作正常。