2012-01-20 196 views
2

我需要一些幫助開始使用Android上的HLS和RTSP。Android 3.0+(HLS和RTSP/RTP)上的實況視頻流播放

要測試RTSP,我正在運行LIVE555媒體服務器。該服務器具有從live555.com下載的bipbop-gear1-all.ts示例文件和索引文件。所以我的網址只是http://(myIP):80/bipbop-gear1-all.ts 在Android 3.0模擬器上,瀏覽器顯示幾分鐘的下載進度,然後什麼都沒有。瀏覽器窗口沒有更新,沒有Android下載通知。它只是停止。
在Android 3.2.1設備上,它啓動視頻播放器,但立即顯示,Cannot play video,Sorry, this video cannot be played. 在簡單的測試應用程序(從Android問題跟蹤器下載問題17118:Android 3.1無法播放HTTP實時流播放) MediaPlayer.prepare()短暫地命中服務器,並立即拋出IOException,並顯示消息Prepare failed.: status=0x1。 Logcat還顯示,error (1, -2147483648)

相同的測試應用程序播放本地mp4沒有問題,所以我認爲這很好。在iPad上,同一個URL播放視頻,至少證明我的服務器是好的。

要測試HTTP實時流(HLS),我使用的是bipbop樣品在送達apple.com: http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8 httplive://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8

在Android 3仿真器中,示例應用程序開始使用「httplive」協議播放地址,但它掛起。使用「http」協議,在MediaPlayer.start()之後,它暫停一會,但不顯示任何內容。然後logcat顯示:

W/AudioSystem(715): AudioFlinger server died! 
W/IMediaDeathNotifier(715): media server died 
E/MediaPlayer(715): error (100, 0) 
E/MediaPlayer(715): Error (100,0) 

和我的onCompletion()處理程序被調用。

在真實的3.2.1設備上,使用http協議的應用程序的行爲與在3.0仿真器上的行爲相同。 httplive在準備消息Prepare failed.: status=0x1時拋出IOException。

在3.0模擬器的瀏覽器中,http地址會顯示一個音頻播放器,該播放器會停止並顯示烤麪包信息Sorry, the player does not support this type of audio file。 httplive地址只是進入Google搜索。

在真實3.2.1設備的瀏覽器中,http地址會彈出一個對話框Complete action using,其選項爲:MusicVideo player。按Video player,我得到,Cannot play video,Sorry, this video cannot be played。按Music,我得到,Couldn't play the track you requested.。再次,這個地址在iPad上運行良好。

任何幫助將非常感激。

回答

0

無法幫助您使用RTSP協議。

對於HLS,我能夠從蘋果網站獲得示例視頻,使用一個構建在2.3.4和3.0上的簡單應用程序。

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mMediaController = new MediaController(this); 
    mVideoView = (VideoView)findViewById(R.id.video_view); 
    mVideoView.setVideoPath(mVideoPath); 
    mVideoView.setMediaController(mMediaController); 
    mVideoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer mp) { 
      // TODO Auto-generated method stub 
      mp.start(); 
     } 
    }); 
} 
0

RTSP應該在Android上得到支持,但似乎被打破,我最近有玩RTSP流和最終使用的ffmpeg寫我自己的球員。有一些你可能會嘗試的好項目。海豚是一個。