Android编程实现播放视频的方法示例
发布时间 - 2026-01-11 02:35:38 点击率:次本文实例讲述了Android编程实现播放视频的方法。分享给大家供大家参考,具体如下:

播放视频文件其实并不比播放音频文件复杂,主要是使用 VideoView 类来实现的。这个 类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易的视频播放器。 VideoView 的用法和 MediaPlayer 也比较类似,主要有以下常用方法:
|
方法名 |
功能描述 |
|
setVideoPath() |
设置要播放的视频文件的位置。 |
|
start() |
开始或继续播放视频。 |
|
pause() |
暂停播放视频。 |
|
resume() |
将视频重头开始播放。 |
|
seekTo() |
从指定的位置开始播放视频。 |
|
isPlaying() |
判断当前是否正在播放视频。 |
|
getDuration() |
获取载入的视频文件的时长。 |
那么我们还是通过一个实际的例子来学习一下吧,新建 PlayVideoTest 项目,然后修改activity_main.xml 中的代码,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <VideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/play" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Play" /> <Button android:id="@+id/pause" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Pause" /> <Button android:id="@+id/replay" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Replay" /> </LinearLayout> </LinearLayout>
在这个布局文件中,首先是放置了一个 VideoView,稍后的视频就将在这里显示。然后在 VideoView 的下面又放置了三个按钮,分别用于控制视频的播放、暂停和重新播放。 接下来修改 MainActivity 中的代码,如下所示:
public class MainActivity extends Activity implements OnClickListener {
private VideoView videoView;
private Button play; private Button pause; private Button replay;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
play = (Button) findViewById(R.id.play);
pause = (Button) findViewById(R.id.pause);
replay = (Button) findViewById(R.id.replay);
videoView = (VideoView) findViewById(R.id.video_view); play.setOnClickListener(this); pause.setOnClickListener(this); replay.setOnClickListener(this);
initVideoPath();
}
private void initVideoPath() {
File file = new File(Environment.getExternalStorageDirectory(), "movie.3gp");
videoView.setVideoPath(file.getPath()); // 指定视频文件的路径
}
@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();
}
}
}
这部分代码相信你理解起来会很轻松,因为它和前面播放音频的代码非常类似。首先在 onCreate()方法中仍然是去获取一些控件的实例,然后调用了 initVideoPath()方法来设置视频 文件的路径,这里我们需要事先在 SD 卡的根目录下放置一个名为 movie.3gp 的视频文件。 下面看一下各个按钮的点击事件中的代码。当点击 Play 按钮时会进行判断,如果当前 并没有正在播放音频,则调用 start()方法开始播放。当点击 Pause 按钮时会判断,如果当前 视频正在播放,则调用 pause()方法暂时播放。当点击 Replay 按钮时会判断,如果当前视频正在播放,则调用 resume()方法重头播放视频。最后在 onDestroy()方法中,我们还需要调用一下 suspend()方法,将 VideoView 所占用的 资源释放掉。
现在将程序运行到手机上,然后点击一下 Play 按钮,就可以看到视频已经开始播放了, 如下图所示:
点击 Pause 按钮可以暂停视频的播放,点击 Replay 按钮可以重头播放视频。 这样的话,你就已经将 VideoView 的基本用法掌握得差不多了。不过,为什么它的用法
和 MediaPlayer 这么相似呢?其实 VideoView 只是帮我们做了一个很好的封装而已,它的背 后仍然是使用 MediaPlayer 来对视频文件进行控制的。另外需要注意,VideoView 并不是一 个万能的视频播放工具类,它在视频格式的支持以及播放效率方面都存在着较大的不足。所 以,如果想要仅仅使用 VideoView 就编写出一个功能非常强大的视频播放器是不太现实的。 但是如果只是用于播放一些游戏的片头动画,或者某个应用的视频宣传,使用 VideoView 还 是绰绰有余的。
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android数据库操作技巧总结》、《Android文件操作技巧汇总》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
# Android
# 播放
# 视频
# android使用surfaceview+MediaPlayer播放视频
# Android ViewPager中显示图片与播放视频的填坑记录
# Android中使用TextureView播放视频
# Android编程实现播放视频时切换全屏并隐藏状态栏的方法
# Android仿搜狐视频、微视等列表播放视频功能
# Android多媒体教程之播放视频的四种方法
# Android 播放视频常见问题小结
# Android DragVideo实现播放视频时任意拖拽的方法
# Android仿新浪微博/QQ空间滑动自动播放视频功能
# android surfaceView实现播放视频功能
# 视频文件
# 正在播放
# 操作技巧
# 所示
# 仍然是
# 进阶
# 视频播放器
# 在这里
# 很好
# 相关内容
# 在这个
# 你就
# 不太
# 绰绰有余
# 感兴趣
# 这部
# 微软
# 给大家
# 还需要
# 已经开始
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
5种Android数据存储方式汇总
详解MySQL数据库的安装与密码配置
如何获取PHP WAP自助建站系统源码?
JS去除重复并统计数量的实现方法
如何用PHP快速搭建高效网站?分步指南
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
敲碗10年!Mac系列传将迎来「触控与联网」双革新
中山网站制作网页,中山新生登记系统登记流程?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
JS经典正则表达式笔试题汇总
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
做企业网站制作流程,企业网站制作基本流程有哪些?
青岛网站建设如何选择本地服务器?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel如何升级到最新版本?(升级指南和步骤)
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
javascript基于原型链的继承及call和apply函数用法分析
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
BootStrap整体框架之基础布局组件
html如何与html链接_实现多个HTML页面互相链接【互相】
JavaScript模板引擎Template.js使用详解
IOS倒计时设置UIButton标题title的抖动问题
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
PythonWeb开发入门教程_Flask快速构建Web应用
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
历史网站制作软件,华为如何找回被删除的网站?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
*服务器网站为何频现安全漏洞?
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
如何确保FTP站点访问权限与数据传输安全?

