1. 程式人生 > >Android RTMP播放器(畢業設計跟進)

Android RTMP播放器(畢業設計跟進)

關於播放器,不太想弄清楚各種協議,各種視訊編解碼的關係,麻煩,真的很麻煩,我只想用開源的東西。所以我一直在想youku,youtube究竟是怎麼搞的...好像就是用的flash...很奇怪。

一、前奏

1、Android自帶videoview播不了rtmp協議的視訊

2、WebView貌似好像也播不了red5釋出出來的視訊流,自己試了n久,查了好多資料也沒找出來。

3、PC上的VLC能夠播放,但是android上的VLC播放不了

4、思索片刻,還是用vitamio吧。

二、vitamio框架

1、到github上下載後解壓,匯入至工程,有兩個工程,一個是Lib,一個是sample

2、記得用4.0以上的android sdk

3、匯入的時候記得copy到workspace

4、在自己的android專案中引入lib工程

三、主專案

1、在AndroidManifest.xml中加入

 <!-- Don't forgot InitActivity -->
        <activity
            android:name="io.vov.vitamio.activity.InitActivity"
            android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
            android:launchMode="singleTop"
            android:theme="@android:style/Theme.NoTitleBar"
            android:windowSoftInputMode="stateAlwaysHidden" />

2、播放rtmp視訊流activity
public class VideoActivity extends Activity {
	
	private String path="";
	private VideoView mVideoView;

	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		if (!LibsChecker.checkVitamioLibs(this))
			return;
		setContentView(R.layout.videoview);
		mVideoView = (VideoView) findViewById(R.id.surface_view);
		
		//要剪下下
		path = getIntent().getExtras().getString("url").trim();
		System.out.println("path:"+path);
		if (path == "") {
			Toast.makeText(VideoActivity.this, "Please edit VideoViewDemo Activity, and set path" + " variable to your media file URL/path", Toast.LENGTH_LONG).show();
			return;
		} else {
			mVideoView.setVideoPath(path);
//			mVideoView.setMediaController(new MediaController(this));
			mVideoView.requestFocus();
			mVideoView.start();

			mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
				@Override
				public void onPrepared(MediaPlayer mediaPlayer) {
					// optional need Vitamio 4.0
					mediaPlayer.setPlaybackSpeed(1.0f);
				}
			});
		}

	}
}