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站点访问权限与数据传输安全?