本文实例讲述了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实现播放视频功能
# 视频文件
# 正在播放
# 操作技巧
# 所示
# 仍然是
# 进阶
# 视频播放器
# 在这里
# 很好
# 相关内容
# 在这个
# 你就
# 不太
# 绰绰有余
# 感兴趣
# 这部
# 微软
# 给大家
# 还需要
# 已经开始
相关文章:
如何登录建站主机?访问步骤全解析
如何在企业微信快速生成手机电脑官网?
seo网站制作优化,网站SEO优化步骤有哪些?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
制作宣传网站的软件,小红书可以宣传网站吗?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何注册花生壳免费域名并搭建个人网站?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
如何在云服务器上快速搭建个人网站?
制作门户网站的参考文献在哪,小说网站怎么建立?
如何在云虚拟主机上快速搭建个人网站?
如何用虚拟主机快速搭建网站?详细步骤解析
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
5种Android数据存储方式汇总
专业公司网站制作公司,用什么语言做企业网站比较好?
PHP 500报错的快速解决方法
长沙做网站要多少钱,长沙国安网络怎么样?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
三星网站视频制作教程下载,三星w23网页如何全屏?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
网站制作网站,深圳做网站哪家比较好?
建站之星代理费用多少?最新价格详情介绍
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
建站之星后台密码如何安全设置与找回?
如何在阿里云完成域名注册与建站?
如何在阿里云虚拟服务器快速搭建网站?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
建站之星代理如何优化在线客服效率?
常州自助建站工具推荐:低成本搭建与模板选择技巧
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何通过网站建站时间优化SEO与用户体验?
视频网站制作教程,怎么样制作优酷网的小视频?
如何快速启动建站代理加盟业务?
如何批量查询域名的建站时间记录?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星如何开启自定义404页面避免用户流失?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
高端智能建站公司优选:品牌定制与SEO优化一站式服务
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
*请认真填写需求信息,我们会在24小时内与您取得联系。