2015-08-26 108 views
0

我想流在RTSP實時輸入這樣:Android的實時視頻流不播放

     String uri = "rtsp://54.213.167.253:5544/63a1203d-4e12-438e-86ec-f447fa90cfd7"; 
         Uri uri_add = Uri.withAppendedPath(MediaStore.Video.Media.INTERNAL_CONTENT_URI, "1"); 
         videoView.setVideoURI(uri_add.parse(uri)); 
         mediaController = new MediaController(_context); 
         videoView.setMediaController(mediaController); 
         videoView.requestFocus(); 
         videoView.start(); 

這個工程上的HTC,索尼和LG裝置了我與測試,但不工作在Galaxy S6或任何三星設備上。我研究了編碼兼容性,h.264是我的流編碼的,這應該適用於我擁有的所有設備。我在這些設備上運行Android v。5.0.2和5.1.1,並且軟件之間沒有關聯。也就是說,運行5.0.2的GalaxyS6不能播放視頻,而運行5.0.2的HTC正在播放視頻。我完全喪失了可能導致我無法播放視頻的原因。

我已閱讀所有關於流式傳輸實時視頻的文章和文章,並試圖在我的代碼中實現它們,但是我每次都遇到相同的問題。我非常肯定代碼沒有問題,否則它在任何設備上都不起作用。任何人有任何想法可能會導致這一點,爲什麼?

+0

瀏覽器問題可能嗎?你有沒有在多個瀏覽器上嘗試過? – Actiwitty

回答

0

這個問題似乎在少數三星設備上很常見。你檢查了Logcat顯示的內容嗎?

我與Galaxy Tab 4有同樣的問題,我最終使用Vitamio's庫進行視頻流。它現在還沒有被支持,但很容易使用和基本定製

0

使用此類。這也在三星設備上運行。

private ProgressDialog progressDialog; 
    VideoView videoView; 
    private myAsync sync; 

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

     String videourl = "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov"; 
     videoView = (VideoView) findViewById(R.id.video_view); 
     progressDialog = ProgressDialog.show(CustomizeProgressDialogActivity.this, "", 
       "Buffering video...", true); 
     progressDialog.setCancelable(false); 
     // progressDialog.dismiss(); 
     MediaController mediaController = new MediaController(CustomizeProgressDialogActivity.this); 
     mediaController.setAnchorView(videoView); 

     Uri video = Uri.parse(videourl);// insert video url 
     videoView.setMediaController(mediaController); 

     videoView.setVideoURI(video); 
     videoView.requestFocus(); 

     sync = new myAsync(); 
     sync.execute(); 
     // PlayVideo(); 
    } 


    private class myAsync extends AsyncTask<Void, Integer, Void> { 

     int duration = 0; 
     int current = 0; 

     @Override 
     protected Void doInBackground(Void... params) { 

      videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 

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

      do { 


       current = videoView.getCurrentPosition(); 
       System.out.println("duration - " + duration + " current- " 
         + current); 



       if (sync.isCancelled()) 
        break; 

      } 

      while (current != duration || current == 0); 

      return null; 
     } 

    } 
+0

你可以顯示你的xml文件嗎? –