使用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视频流。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值