Android支援播放網路上的視頻。在播放網路上的視頻時,牽涉到視頻流的傳輸,往往有兩種協議,一種是HTTP,一種是RTSP。這
兩種協議最大的不同是,HTTP協議,不支援即時資料流媒體的播放,而RTSP協議就支援。
Android中內建的播放器,以及VideoView等都支援上述兩種協議,因此,可以直接播放網路上的視頻,唯一不同的就是URI。
代碼如下:
package demo.camera;<br />import android.app.Activity;<br />import android.net.Uri;<br />import android.os.Bundle;<br />import android.os.Environment;<br />import android.widget.MediaController;<br />import android.widget.VideoView;<br />/**<br /> * 本執行個體示範如何在Android中播放網路上的視頻,這裡牽涉到視頻傳輸協議,視頻編解碼等知識點<br /> * @author Administrator<br /> *Android當前支援兩種協議來傳輸視頻流一種是Http協議,另一種是RTSP協議<br /> *Http協議最常用於視頻下載等,但是目前還不支援邊傳輸邊播放的即時資料流媒體<br /> *同時,在使用Http協議 傳輸視頻時,需要根據不同的網路方式來選擇合適的編碼方式,<br /> *比如對於GPRS網路,其頻寬只有20kbps,我們需要使視頻流的傳輸速度在此範圍內。<br /> *比如,對於GPRS來說,如果多媒體的編碼速度是400kbps,那麼對於一秒鐘的視頻來說,就需要20秒的時間。這顯然是無法忍受的<br /> *Http下載時,在裝置上進行緩衝,只有當緩衝到一定程度時,才能開始播放。<br /> *<br /> *所以,在不需要即時播放的場合,我們可以使用Http協議<br /> *<br /> *RTSP:Real Time Streaming Protocal,即時資料流媒體傳輸控制通訊協定。<br /> *使用RTSP時,流媒體的格式需要是RTP。<br /> *RTSP和RTP是結合使用的,RTP單獨在Android中式無法使用的。<br /> *<br /> *RTSP和RTP就是為即時資料流媒體設計的,支援邊傳輸邊播放。<br /> *<br /> *同樣的對於不同的網路類型(GPRS,3G等),RTSP的編碼速度也相差很大。根據實際情況來<br /> *<br /> *使用前面介紹的三種方式,都可以播放網路上的視頻,唯一不同的就是URI<br /> *<br /> *本例中使用VideoView來播放網路上的視頻<br /> */<br />public class InternetVideoDemo extends Activity {</p><p>public void onCreate(Bundle savedInstanceState){<br />super.onCreate(savedInstanceState);<br />this.setContentView(R.layout.video_view);</p><p>Uri uri = Uri.parse("rtsp://v2.cache2.c.youtube.com/CjgLENy73wIaLwm3JbT_%ED%AF%80%ED%B0%819HqWohMYESARFEIJbXYtZ29vZ2xlSARSB3Jlc3VsdHNg_vSmsbeSyd5JDA==/0/0/0/video.3gp");<br />VideoView videoView = (VideoView)this.findViewById(R.id.video_view);<br />videoView.setMediaController(new MediaController(this));<br />videoView.setVideoURI(uri);<br />//videoView.start();<br />videoView.requestFocus();<br />}<br />}<br />