Android RTMP播放器(畢業設計跟進)
阿新 • • 發佈:2019-01-07
關於播放器,不太想弄清楚各種協議,各種視訊編解碼的關係,麻煩,真的很麻煩,我只想用開源的東西。所以我一直在想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視訊流activitypublic 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); } }); } } }