作者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