Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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 视频流_Android_Android Videoview - Fatal编程技术网

Android 视频流

Android 视频流,android,android-videoview,Android,Android Videoview,下面是我的流媒体视频代码: VideoView vv = (VideoView)this.findViewById(R.id.screen_video); Uri uri = Uri.parse(URL); vv.setVideoURI(uri); vv.start(); 它起作用了。 但是如果android手机或pad不支持URL视频格式。 它显示一个对话框,而不显示屏幕。 但它仍然在黑屏上播放。 我想获取错误消息,并作为异常访问。 但我不知道怎么得到它 另一个问题是,低速wifi可能导致流

下面是我的流媒体视频代码:

VideoView vv = (VideoView)this.findViewById(R.id.screen_video);
Uri uri = Uri.parse(URL);
vv.setVideoURI(uri);
vv.start();
它起作用了。 但是如果android手机或pad不支持URL视频格式。 它显示一个对话框,而不显示屏幕。 但它仍然在黑屏上播放。 我想获取错误消息,并作为异常访问。 但我不知道怎么得到它

另一个问题是,低速wifi可能导致流媒体崩溃。
如何检查低速wifi时是否等待?

您不应该立即播放视频。将准备好的侦听器添加到视频视图,然后开始播放视频。使用MediaPlayer,您可以跟踪缓冲状态,并在视频尚未下载时停止视频一段时间。请看一下指南。

它取决于您开发应用程序的Android版本。某些设备不支持运行.mp4文件。请浏览以获取更多信息。检查是否可以播放任何.3gp文件。

试试这段代码,它可以工作

public class PlayVideo extends Activity
{


 private String videoPath ="url";

 private static ProgressDialog progressDialog;
 String videourl;  
    VideoView videoView ;


 protected void onCreate(Bundle savedInstanceState)
 {

  super.onCreate(savedInstanceState);
  setContentView(R.layout.play_video);

   videoView = (VideoView) findViewById(R.id.videoView);


   progressDialog = ProgressDialog.show(PlayVideo.this, "", "Buffering video...", true);
   progressDialog.setCancelable(true);  


      PlayVideo();

 }
 private void PlayVideo()
 {
  try
       {      
              getWindow().setFormat(PixelFormat.TRANSLUCENT);
              MediaController mediaController = new MediaController(PlayVideo.this);
              mediaController.setAnchorView(videoView);           

               Uri video = Uri.parse(videoPath );             
               videoView.setMediaController(mediaController);
               videoView.setVideoURI(video);
               videoView.requestFocus();              
               videoView.setOnPreparedListener(new OnPreparedListener()
               {

                   public void onPrepared(MediaPlayer mp)
                   {                  
                       progressDialog.dismiss();     
                       videoView.start();
                   }
               });           


            }
       catch(Exception e)
       {
                progressDialog.dismiss();
                System.out.println("Video Play Error :"+e.toString());
                finish();
       }   

 }
}

尝试避免那个错误。或者在你的街区里放上试捕器。 VideoView只能流式播放3gp视频,但我建议您使用此代码流式播放视频

public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.main);
String videourl = "http://something.com/blah.mp4";
Uri uri = Uri.parse(videourl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setDataAndType(uri, "video/mp4");
startActivity(intent);
}

或者。

当我使用videoview时,它在logcat中显示03-19 15:02:48.314:V/videoview(9255):OnBufferingUpdateListener:CurrentBufferPercentage=100。如何获取值?这就是我建议您使用MediaPlayer的原因,您可以在BufferingUpdateListener上注册它。但我认为使用videoView.getBufferPercentage()可以从视频视图中获得相同的值!另一种解决方案是注册监听器
setOneRorListener
(在VideoView对象上),它允许您实现回调
MediaPlayer.OneRorListener
,在播放或设置过程中发生错误时将调用该回调。