[分享] 播放RTSP串流的影片

看板AndroidDev作者 (習慣壞習慣)時間13年前 (2011/05/28 08:47), 編輯推噓9(902)
留言11則, 10人參與, 最新討論串1/1
今天來分享一下串流影片的做法 (這裡有圖 http://fooolgle.blogspot.com/2011/05/streamrtsp.html) 在開始做之前需要知道幾件重要的事 1.要在Layout裡新增一個SurfaceView 2.需要實作SurfaceHolder.Callback的事件 (implements SurfaceHolder.Callback) 3.要在surfaceCreated事件下產生MediaPlayer (不然會沒有畫面) 接下來看程式碼吧 先把在Layout新增的SurfaceView存成變數,然後取得Holder 接下來都是透過Holder去做事情 設定他的型態,還有設定Callback函數 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); surfaceview = (SurfaceView)findViewById(R.id.surfaceView1); surfaceholder = surfaceview.getHolder(); surfaceholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); surfaceholder.addCallback(this); } 然後在surfaceCreated事件下產生MediaPlayer @Override public void surfaceCreated(SurfaceHolder arg0) { m = new MediaPlayer();//產生MediaPlayer物件 try { m.setAudioStreamType(AudioManager.STREAM_MUSIC);//設定型態 m.setDataSource("rtsp://v.starv.tv/later.3gp");//路徑 m.setDisplay(surfaceholder);//用surfaceholder顯示畫面 m.prepareAsync();//要用非同步的準備,UI介面才不會停住 } catch (Exception e) {} m.setOnBufferingUpdateListener(new OnBufferingUpdateListener() { @Override public void onBufferingUpdate(MediaPlayer mp, int percent) { text.setText("緩衝處理中: "+ percent +" %");//顯示緩衝進度 if (percent==100){//如果緩衝完成就開始播放 m.start(); mHandle.sendEmptyMessage(0);//開始更新進度條 }}}); m.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared(MediaPlayer arg0) { seekBar.setMax(m.getDuration());//設定總毫秒數 m.start();//載入完成時播放 }}); } 因為是RTSP串流的方式,所以我有透過SeekBar加上隨點即播的功能 詳細程式碼請看 http://uploadmirrors.com/download/0AFVJRV9/stream_rtsp.zip -- 我的Android作品集 http://android.wuya.us/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.68.87 ※ 編輯: badhabit 來自: 115.80.161.110 (05/28 09:03)

05/28 09:14, , 1F
好東西 推一個
05/28 09:14, 1F

05/28 11:19, , 2F
有趣...馬上來玩玩看
05/28 11:19, 2F

05/28 13:27, , 3F
已收錄
05/28 13:27, 3F

05/28 13:51, , 4F
Good!
05/28 13:51, 4F

05/28 14:39, , 5F
網頁版的連結無效耶
05/28 14:39, 5F

05/28 15:20, , 6F
連結把最後一個 ) 去掉就正確了 XD
05/28 15:20, 6F

05/28 15:44, , 7F
靠,沒注意到,用pcman開的話會連")"一起丟XD
05/28 15:44, 7F

05/30 13:21, , 8F
好文推
05/30 13:21, 8F

07/12 14:13, , 9F
推推
07/12 14:13, 9F

11/29 15:57, , 10F
大推
11/29 15:57, 10F

11/19 01:38, , 11F
程式連結好像掛了耶,有人收錄下來的嗎?ˊˋ
11/19 01:38, 11F
文章代碼(AID): #1Du4OFGh (AndroidDev)
文章代碼(AID): #1Du4OFGh (AndroidDev)