2015-02-10 216 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