2016-03-03 182 views
0

我試圖從RTSP服務器流式播放視頻。我想在我的應用程序中運行視頻。我嘗試了三種不同的方法,其中只有一種似乎有效:無法RTSP流視頻的Android的MediaPlayer

  1. 使用VideoView(不起作用)。
  2. 使用原生播放器(作品)。
  3. 使用的MediaPlayer(不工作)。

我要顯示在MediaPlayer的視頻中卻無法做到這一點。

下面是代碼:

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



    /* 1. Using VideoView, error: "Cannot play video" 
    VideoView vidView = (VideoView) findViewById(R.id.myVideo); 

    String vidAdress = "rtsp://10.42.0.91:5554/camera"; 
    Uri vidUri = Uri.parse(vidAdress); 

    vidView.setVideoURI(vidUri); 

    vidView.start(); 

    */ 

    //Using native player (implicit intent), works. 
    String mediaURL = "rtsp://10.42.0.91:5554/camera"; 
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mediaURL)); 
    startActivity(intent); 

    /* Using MediaPlayer (doesn't work). Error: "Cannot create MediaPlayer" 
and setDataSource. 
    setVolumeControlStream(AudioManager.STREAM_MUSIC); 
    mediaPlayer = new MediaPlayer(); 
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 

    try 
    { 
     mediaPlayer.setDataSource("rtsp://10.42.0.91:5554/camera"); 
     mediaPlayer.prepare(); 
     mediaPlayer.start(); 
    } 
    catch (IOException ex) 
    { 
     ex.printStackTrace(); 
    } 
    */ 

HTTP:10.42.0.91:8080/playlist.m3u看起來是這樣的:

#EXTM3U

#PLAYLIST:RTSP攝像機服務器 #EXTINF :-1,Active camera rtsp://10.42.0.91:5554/camera #EXTINF:319,3/3/16 PM 3:08:35 MB rtsp://10.42.0.91:5554/record160303_1500 # EXTINF:1047,3/3/16 P M 2:15:106.4 MB rtsp://10.42.0.91:5554/record160303_1400 #EXTINF:1364,All records 141.4 MB rtsp://10.42.0.91:5554/record #EXTINF:-1,Back camera RTSP://10.42.0.91:5554 /背面 #EXTINF:-1,前置攝像頭 RTSP://10.42.0.91:5554 /前

回答

0

我剛剛完成,可以顯示RTSP h的基本應用.264(甚至是高調)在Android MediaPlayer中。 我是實驗和研究,我應該如何實現它,當我遇到this video來了。它很容易實現,還提供了源代碼。 我使用Android版本5.1.1,它似乎不適用於4.4和更低版本。我的目標是讓它在4.1及更高版本上運行,所以當我得到這個工作時我會編輯或評論。

我希望這說明了你所需要的一切。只要告訴我它是否仍然無效,我會盡力幫助你。