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();方法之前设置监听事件:
该方法代码如下:
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播放网络和本地视频》》点击打开链接