作者badhabit (習慣壞習慣)
看板AndroidDev
標題[分享] 播放RTSP串流的影片
時間Sat May 28 08:46:59 2011
今天來分享一下串流影片的做法
(這裡有圖
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)
1F:推 mamaya3:好東西 推一個 05/28 09:14
2F:推 laiis:有趣...馬上來玩玩看 05/28 11:19
3F:推 nowar100:已收錄 05/28 13:27
4F:→ diousk:Good! 05/28 13:51
5F:推 cobrasgo:網頁版的連結無效耶 05/28 14:39
6F:→ jimwayne123:連結把最後一個 ) 去掉就正確了 XD 05/28 15:20
7F:推 cobrasgo:靠,沒注意到,用pcman開的話會連")"一起丟XD 05/28 15:44
8F:推 yienge:好文推 05/30 13:21
9F:推 kdkdlove:推推 07/12 14:13
10F:推 cooltey:大推 11/29 15:57
11F:推 sw2425:程式連結好像掛了耶,有人收錄下來的嗎?ˊˋ 11/19 01:38