VideoView 網絡視訊播放
/*
*
*
* 1.建立一個空的Library
*
* 2.将Vitamio庫檔案中的res,src,AndroidManifest.xml檔案拷貝到新建立的Library的src\main目錄下
*
* 3.将Vitamio庫檔案中的libs檔案夾下的四個檔案夾拷貝到新建立的庫檔案的Libs檔案夾下
*
* 4.在新建立的檔案下建立一個jniLibs檔案夾(new-->Folder-->JNI Folder),在建立的過程中,選擇change folder location,然後将
*
* 檔案名修改為jniLibs
*
* 5.修改庫檔案的gradle,将sourceSets { main { jni.srcDirs = ['src/main/jni', 'src/main/jniLibs'] } }改為
*
* sourceSets { main { jniLibs.srcDirs = ['libs'] } }
*
* 6.給App工程添加依賴
*
*
* */
詳細導類庫》》》》點選打開連結:Studio詳細導類庫做法
MainActivity代碼如下:
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import io.vov.vitamio.Vitamio;
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化 Vitamio.initialize();
if ( Vitamio.initialize(this)){
//之後的設定 和google 官方提供的VideoView的配置差不多
VideoView videoView = (VideoView) findViewById(R.id.videoView);
videoView.setVideoURI(Uri.parse("http://112.253.22.157/17/z/z/y/u/zzyuasjwufnqerzvyxgkuigrkcatxr/hc.yinyuetai.com/D046015255134077DDB3ACA0D7E68D45.flv"));
//使用類庫提供的MediaController (注意是Vitamio包下的)
MediaController controller = new MediaController(this);
//雙重綁定
videoView.setMediaController(controller);
controller.setMediaPlayer(videoView);
//播放視訊
videoView.start();
}
}
}
還需要 添加通路網絡的權限!!!!!!!!!!!!!
也可以自定義控制欄》》點選轉跳到:VideoView自定義控制欄
activity_main xml檔案代碼:
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context="com.example.yaoan.vitamioplayer.MainActivity">
<io.vov.vitamio.widget.VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="250dp" />
</RelativeLayout>
版主福利:
demo下載下傳(不包含Vitaminoplayer)點選打開連結
最新Vitaminoplayer下載下傳(百度雲)
點選打開連結
提取碼:zj5a
如需添加一些播放資訊請看一下内容:
在onCreate();方法中
videoView.start();方法之前設定監聽事件:
VideoView (Vitamioplayer使用)播放網絡視訊VideoView 網絡視訊播放
該方法代碼如下:
private void initDownDataListener() {
//顯示目前緩沖的百分比
final TextView tv_percent = (TextView) findViewById(R.id.tv_percent);
//顯示緩沖速率
final TextView tv_speed = (TextView) findViewById(R.id.tv_bfb);
//VideoView的緩沖監聽
videoView.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
// percent緩沖的百分比
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
tv_percent.setText(percent+"%");
}
});
//緩沖狀态
videoView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
switch (what) {
//開始緩沖
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
tv_percent.setVisibility(View.VISIBLE);
tv_speed.setVisibility(View.VISIBLE);
videoView.pause();
break;
//結束緩沖
case MediaPlayer.MEDIA_INFO_BUFFERING_END:
tv_speed.setVisibility(View.GONE);
tv_percent.setVisibility(View.GONE);
videoView.start();
break;
//正在緩沖 緩沖發生改變
case MediaPlayer.MEDIA_INFO_DOWNLOAD_RATE_CHANGED:
tv_speed.setText(extra+"kb/s");
break;
}
return false;
}
});
}
上述的2個Textview 自行添加到activity_main xml中
使用SurfaceView 和Mediaplayer播放網絡和本地視訊》》點選打開連結