假如你这个播放视频很简单的一个播放功能,没有其他的特殊要求,那么VideoView播放肯定是最好的选择,当然别人封装好的
使用也是很不错的选择
下面先写一个简单的网络播放
首先在配置文件中,添加联网的权限
<uses-permission android:name="android.permission.INTERNET" />
然后就是布局呢
<VideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="230dp"/>
代码加载播放
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoView = findViewById(R.id.video_view);
//网络视频
videoView.setVideoPath("https://flv2.bn.netease.com/videolib1/1811/26/OqJAZ893T/HD/OqJAZ893T-mobile.mp4");
videoView.start();//开始播放
videoView.requestFocus();//获取焦点
一个简单的播放网络视频很简单的实现了
现在把视频放到了as 工具内播放
在布局中创建了一个raw 文件夹 里面放一个视频如下
布局换是一个VideoView 看下代码实现
private VideoView videoView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.inner_activity_layout);
videoView = findViewById(R.id.video_view);
//as 工具内的视频
String uri = ("android.resource://" + getPackageName() + "/" + R.raw.me);
videoView.setVideoURI(Uri.parse(uri));
videoView.start();
以上就是显示放到工具类视频的播放
假如显示播放视频手机或者机器内存了里面的是视频
这个说明的就是高版本的需要读取内存的权限
下面是有一个text 点击手动开启权限,然后在读取内存里面的视频
public class LocalActivity extends AppCompatActivity {
private TextView textView;
private VideoView videoView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.local_activity_layout);
textView = findViewById(R.id.txt);
videoView = findViewById(R.id.video_view2);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT >= 23) {
int REQUEST_CODE_CONTACT = 101;
String[] permissions = {
Manifest.permission.WRITE_EXTERNAL_STORAGE};
//验证是否许可权限
for (String str : permissions) {
if (LocalActivity.this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
//申请权限
LocalActivity.this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
return;
} else {
//手机本地的视频
String path = Environment.getExternalStorageDirectory() + "/one.mp4";
Log.e("path", Environment.getExternalStorageDirectory().toString());
videoView.setVideoPath(path);
videoView.start();
}
}
}
}
});
}
}
了解以上视频的播放方式之后再看下VideoView的其他功能
1 视频开始的方法 videoView.start();
2 视频暂停的方法 videoView.pause();
3 视频快进的方法 videoView.seekTo(5*1000); //快进5秒
4 视频播放完毕监听的方法
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { videoView.start(); Toast.makeText(InnerActivity.this, "播放完了再来一次", Toast.LENGTH_SHORT).show(); } });
5 设置控制器
videoView.setMediaController(new MediaController(this));
系统默认的控制器很不好使用,位置默认在下面,需要自定义修改下位置
6 设置静音的方法
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); mp.setVolume(0f,0f); } });