2015-02-10 324 views
1

我想通过使用http streaming在我的应用程序中使用VideoView来播放视频。一切工作正常,但问题是,videoView无法播放.mp4视频。我搜索了很多,但没有找到任何解决方案。任何人都可以告诉我有什么解决方案。下面是我的代码。Android视频视图无法播放.mp4远程网址视频

ProgressDialog pDialog; 
    VideoView videoview; 

    String VideoURL; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.videoview_main); 

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

     VideoURL="http://198.74.53.248/overtribe/photos/125/post/871/1423532370ytl6r_video1.mp4"; 
     System.out.println("video url " + VideoURL); 

     pDialog = new ProgressDialog(VideoViewActivity.this); 
     pDialog.setMessage("Buffering..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCanceledOnTouchOutside(false); 
     pDialog.show(); 

     try { 
      // Start the MediaController 
      MediaController mediacontroller = new MediaController(
        VideoViewActivity.this); 
      mediacontroller.setAnchorView(videoview); 
      // Get the URL from String VideoURL 
      Uri video = Uri.parse(VideoURL); 
      videoview.setMediaController(mediacontroller); 
      videoview.setVideoURI(video); 

     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 

     videoview.requestFocus(); 
     videoview.setOnPreparedListener(new OnPreparedListener() { 
      public void onPrepared(MediaPlayer mp) { 
       pDialog.dismiss(); 
       videoview.start(); 
      } 
     }); 

    } // onCreate 
+0

检查[这](http://stackoverflow.com/questions/24730087/cant-play-this-video-android-videoview-mp4-recorded-by-android -设备)! – 2015-02-10 09:53:21

+0

这是播放本地存储的视频。我想使用http流播放视频。 – rahul 2015-02-10 10:28:26

+0

您试图播放的视频速度为30fps,并且规格非常庞大,请尝试上传低/中规格视频,阅读android视频格式和编解码器支持developers.android.com,我认为这个视频的编解码器是不支持 – 2015-02-10 12:17:12

回答

-1

我得到了同样的问题。我发现解决方案here。也尝试阅读教程和Android文档。 所以,这里是我正确的代码

Uri video = Uri.parse("Your link should be in this place "); 
mVideoView.setVideoURI(video); 

mVideoView.setZOrderOnTop(true); //Very important line, add it to Your code 
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mediaPlayer) { 
    // here write another part of code, which provides starting the video 
}} 
+0

我不明白为什么人们低估了这个答案。它可以是问题的解决方案。 – user7856586 2017-12-16 23:22:19