`
zhtch_123
  • 浏览: 80390 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

使用VideoView播放rtsp视频流

 
阅读更多

1.视频播放控制

 

package com.example.rtspvideoview;

import android.app.ProgressDialog;
import android.content.Context;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.util.Log;
import android.widget.MediaController;
import android.widget.VideoView;

public class VideoViewController {

	private ProgressDialog loadingDialog; // loading
	private VideoView videoView;
	private Context context;

	public VideoViewController(Context contxt, VideoView mVideoView) {

		videoView = mVideoView;
		context = contxt;
	}

	public void start(String videoUrl) {

		loadingDialog = new ProgressDialog(context);
		loadingDialog.setMessage("Loading...");
		loadingDialog.show();
		// loadingDialog.setCancelable(false);

		final MediaController controll = new MediaController(context);
		controll.setMediaPlayer(videoView);
		videoView.setOnPreparedListener(new OnPreparedListener() {
			@Override
			public void onPrepared(MediaPlayer mp) {
				Log.i("************", "call back after media file registing.");
				loadingDialog.dismiss();
			}
		});
		videoView.setVideoPath(videoUrl);
		videoView.setMediaController(controll);
		videoView.requestFocus();
		videoView.start();
		controll.show();
	}
}

 

 

2.主控制Activity

 

package com.example.rtspvideoview;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;
import android.widget.VideoView;

public class MainActivity extends Activity {

	private VideoView mVideoView;
	private ProgressDialog loadingDialog; // loading
	private Button btn;
	private VideoViewController con;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
		btn = (Button) findViewById(R.id.control);
		mVideoView = (VideoView) findViewById(R.id.video);
		String url = "rtsp://media2.tripsmarter.com/LiveTV/BTV/";
		con = new VideoViewController(MainActivity.this, mVideoView);

		con.start(url);
		btn.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View arg0) {

				Toast.makeText(MainActivity.this, "点击了按钮", Toast.LENGTH_LONG)
						.show();
				String url="rtsp://218.205.231.149:554/live/1/35AB46A109903442/0037f42790b7cb14.sdp?id=guest&t=1305311828&en=a4d5d7adaf0eca0d907875009a901a85&rs=wap";
				con.start(url);
			}
		});		
	}

}

 

 3.xml配置文件 activity_main.xml

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    
    <Button android:id="@+id/control" android:layout_width="match_parent" android:layout_height="match_parent"/>
    <VideoView android:id="@+id/video" android:layout_width="fill_parent" android:layout_height="fill_parent"/>

</RelativeLayout>
 

注意:此代码只能在android 3.0以上的系统使用,由于android3.0以上的系统才能解析rtsp视频流。

分享到:
评论

相关推荐

    Android 使用videoview播放Rtsp视频 demo

    Android 使用videoview播放Rtsp视频 demo http://blog.csdn.net/huanzhongying/article/details/53032909

    android下videoview播放rtsp的demo

    利用android下的videoview播放rtsp链接的demo,地址为rtsp://217.146.95.166:554/live/chXXyqvga.3gp,其中XX为频道,可手动调换。

    VideoView播放Rtsp

    VideoView播放Rtsp的例子,直接导入eclipse,url换成需要打开的rtsp流地址即刻。

    基于VideoView的本地文件及流媒体播放器

    基于VideoView的本地文件及流媒体播放器,可播放RTSP视频流,也可以播放本地文件。 源码及开发方法,参考: http://blog.csdn.net/fm0517/article/details/46426275

    引用VLC库使用流畅的播放网络流RTSP 视频

    该项目使用AS开发,代码中包含简单的自定义VideoView+MediaPlayer以及引用了开源的vlc的库来播放网络流视频

    android 播放rtsp

    利用videoview播放rtsp视频,解压可用

    VideoView+MediaPlayer 播放视频

    该项目资源是用AS开发,用git 管理,可以使用git 命令查看具体的实现流程,使用VideoView + MediaPlayer实现播放网络rtsp流视频

    Android中Vitamio的VideoView实现网络视频在线播放

    Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播 ...

    全屏播放器(rtsp流播放)

    直接利用VideoView播放视频会出现有边界 而这个项目是让视频全屏播放

    Android在线视频播放之边缓存边播放

    最真实的流媒体协议传输格式并不是普通的http方式,而是rtsp,那样的话得搭建专门的流媒体服务器,成本比较高,采用普通的http方式,实现的是一种伪流媒体传输,但是对于常用的视频缓存播放也足够了。

    SipDroid客户端源码

    15. 在本地播放数据包中的视频流,可以先提取位图,再显示。由于系统没有提供直接播放的相关方法。 16. 线程同步的方法 – synchronized 17. F:\sipdroid\res\drawable 中的图标可以更换 18. sipdroid\res\values-...

Global site tag (gtag.js) - Google Analytics