一、概述

VideoView类将视频的显示和控制集于一身,我们可以借助它完成一个简易的视频播放器。VideoView和MediaPlayer也比较相似。
二、VideoView的使用方法
它主要有以下几种常用方法
步骤:
1.指定视频文件的路径,
2.接下来调用start()方法就可以开始播放视频,pause()方法就会暂停播放,resume()方法就会重新播放
注:获取视频文件也需要运行时权限,所有相关逻辑也需要写。
最后不要忘记在AndroidManifest.xml文件中声明用到的权限
下面是一个比较简单的播放、暂停、重新播放的小demo
一、xml文件中的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.lk.playvideotest.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/play"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Play"
android:textAllCaps="false"/>
<Button
android:id="@+id/pause"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Pause"
android:textAllCaps="false"/>
<Button
android:id="@+id/replay"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="RePlay"
android:textAllCaps="false"/>
</LinearLayout>
<VideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
二、activity中的代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoView = (VideoView) findViewById(R.id.video_view);
Button play = (Button) findViewById(R.id.play);
Button pause = (Button) findViewById(R.id.pause);
Button replay = (Button) findViewById(R.id.replay);
play.setOnClickListener(this);
pause.setOnClickListener(this);
replay.setOnClickListener(this);
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
} else {
initVideoPath();
}
}
private void initVideoPath() {
File file = new File(Environment.getExternalStorageDirectory(), "movie.mp4");
videoView.setVideoPath(file.getPath());//指定视频文件的路径
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case 1:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
initVideoPath();
} else {
Toast.makeText(this, "拒绝权限将无法使用程序", Toast.LENGTH_SHORT).show();
finish();
}
break;
default:
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.play:
if (!videoView.isPlaying()) {
videoView.start();//开始播放
}
break;
case R.id.pause:
if (!videoView.isPlaying()) {
videoView.pause();//暂停播放
}
break;
case R.id.replay:
if (!videoView.isPlaying()) {
videoView.resume();//重新播放
}
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (videoView != null) {
videoView.suspend();//将VideoView所占用的资源释放掉
}
}
}
三、声明权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
VideoView并不是一个万能的视频播放工具类,如果使用它,编写一个功能十分强大的视频播放器是不太现实的。VideoView适用于一些游戏的片头动画,或者某个应用的视频宣传。
# android
# 多媒体类
# VideoView
# Android UniversalVideoView实现视频播放器
# Android音视频开发之VideoView使用指南
# Android自定义videoview仿抖音界面
# Android原生视频播放VideoView的使用
# Android编程实现VideoView循环播放功能的方法
# Android多媒体之VideoView视频播放器
# Android VideoView类实例讲解
# Android使用VideoView播放本地视频和网络视频的方法
# android使用videoview播放视频
# Android中VideoView音视频开发的实现
# 是一个
# 就会
# 视频文件
# 视频播放器
# 不太
# 适用于
# 我们可以
# 几种
# 要写
# 不要忘记
# 就可以
# 也需
# 播放工具
# 主要有
# 使用它
# layout_height
# orientation
# app
# xmlns
# match_parent
相关文章:
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何彻底卸载建站之星软件?
用v-html解决Vue.js渲染中html标签不被解析的问题
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
宁波免费建站如何选择可靠模板与平台?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
如何快速辨别茅台真假?关键步骤解析
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
香港服务器选型指南:免备案配置与高效建站方案解析
活动邀请函制作网站有哪些,活动邀请函文案?
如何在万网自助建站平台快速创建网站?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
大连网站设计制作招聘信息,大连投诉网站有哪些?
C#怎么使用委托和事件 C# delegate与event编程方法
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
建站之星后台密码遗忘或太弱?如何重置与强化?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
,网站推广常用方法?
,南京靠谱的征婚网站?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站主机选购指南:核心配置与性价比推荐解析
如何在企业微信快速生成手机电脑官网?
C++如何使用std::optional?(处理可选值)
网站设计制作公司地址,网站建设比较好的公司都有哪些?
宝塔面板如何快速创建新站点?
文字头像制作网站推荐软件,醒图能自动配文字吗?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
临沂网站制作企业,临沂第三中学官方网站?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
制作公司内部网站有哪些,内网如何建网站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
长沙企业网站制作哪家好,长沙水业集团官方网站?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
成都网站制作报价公司,成都工业用气开户费用?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
如何选择香港主机高效搭建外贸独立站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
零服务器AI建站解决方案:快速部署与云端平台低成本实践
完全自定义免费建站平台:主题模板在线生成一站式服务
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
音乐网站服务器如何优化API响应速度?
如何规划企业建站流程的关键步骤?
如何确保FTP站点访问权限与数据传输安全?
*请认真填写需求信息,我们会在24小时内与您取得联系。