播放视频文件其实并不比播放音频文件复杂,主要是使用 VideoView 类来实现的。这个 类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易的视频播放器。 VideoView 的用法和 MediaPlayer 也比较类似,主要有以下常用方法:

方法名

功能描述

setVideoPath()

设置要播放的视频文件的位置。

start()

开始或继续播放视频。

pause()

暂停播放视频。

resume()

将视频重头开始播放。

seekTo()

从指定的位置开始播放视频。

isPlaying()

判断当前是否正在播放视频。

getDuration()

获取载入的视频文件的时长。

那么我们还是通过一个实际的例子来学习一下吧,新建 PlayVideoTest 项目,然后修改

activity_main.xml 中的代码,如下所示:

xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/video_view"

android:layout_width="match_parent" android:layout_height="wrap_content"

/>

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/play" android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1" android:text="Play" />

android:id="@+id/pause" android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1" android:text="Pause" />

android:id="@+id/replay" android:layout_width="0dp"

android:layout_height="wrap_content" android:layout_weight="1"

android:text="Replay" />

在这个布局文件中,首先是放置了一个 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 按钮,就可以看到视频已经开始播放了, 如图 8.20

所示。

图   8.20

点击 Pause 按钮可以暂停视频的播放,点击 Replay 按钮可以重头播放视频。 这样的话,你就已经将 VideoView 的基本用法掌握得差不多了。不过,为什么它的用法

和 MediaPlayer 这么相似呢?其实 VideoView 只是帮我们做了一个很好的封装而已,它的背 后仍然是使用 MediaPlayer 来对视频文件进行控制的。另外需要注意,VideoView 并不是一 个万能的视频播放工具类,它在视频格式的支持以及播放效率方面都存在着较大的不足。所 以,如果想要仅仅使用 VideoView 就编写出一个功能非常强大的视频播放器是不太现实的。 但是如果只是用于播放一些游戏的片头动画,或者某个应用的视频宣传,使用 VideoView 还 是绰绰有余的。

android打开视频噔_android: 播放视频相关推荐

  1. Android 使用腾讯sdk播放视频

    Android 使用腾讯sdk播放视频 1.下载官方sdk 点击下载 拿到需要使用到的文件 将文件放在指定的位置 如何在build.gradle文件输入下面的代码导入jar包 implementati ...

  2. SpringBoot + thymeleaf + mysql + html<video> 实现读取视频列表并播放视频

    SpringBoot + thymeleaf + mysql + html 实现读取视频列表并播放视频 通过读取数据库video表获取当前视频的视频名.视频地址,展示至前端页面videorecord. ...

  3. android打开视频噔_Android中三种视频的播放

    在Android中,我们有三种方式来实现视频的播放: 1.使用其自带的播放器.指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型. 2.使用VideoView来播放. ...

  4. android webview 横竖屏_webview播放视频并且点击全屏横屏的方法

    title: webview播放视频并且点击全屏横屏的方法 date: 2016-11-28 10:33:27 tags: tips 首先initWebView,好吧有点多,有些是项目里其他需求需要的 ...

  5. 如何阻止YouTube在iOS,Android和Web上自动播放视频

    Over at YouTube, they love it when you watch more YouTube. If you're sick of YouTube automatically q ...

  6. FFmpeg系列(二)-Android项目引入FFmpeg库播放视频

    在系列一中讲述了如何编译FFmpeg的源码,现在就在Android项目中引入我们编译出来的库,并实现播放一个在线视频的功能 新建Android工程 新建一个支持ndk的Android工程,在AS中新建 ...

  7. android 启动视频,android 启动页面全屏播放视频

    有时候大家在启动软件的时候,会看到有一个比较炫酷的短视频,觉得很有意思,现在做项目的时候也遇到了,跟大家分享一下. 首先,在 res 目录下建一个文件夹 raw, 把你的视频文件(.mp4等)放进去. ...

  8. android html5播放器,用 HTML5 播放器在 iOS 或 Android 等移动设备上播放视频

    如果你想把自己网站上的视频弄得能在 iOS 或者 Android 设备上播放,你需要想两个事儿,一个是你网站上的视频播放器要支持 HTML5,还有你的视频得支持在这些设备上看. 网站的视频播放器我们可 ...

  9. Android TV 8.0 Browser播放视频闪退

    文章目录 平台 问题 错误日志 问题分析 解决方法 平台 平台:Mstar Android 8.0 TV 问题 问题:在Browser里面去播放网络视频,或者是播放音乐都会闪退. 错误日志 于是跑去查 ...

最新文章

  1. 统治世界的 10 大算法,你知道几个?
  2. Spring-Cloud 从0开始(二) Eureka-Client
  3. SolrCloud在linux上的搭建
  4. Asp.net 不安全端口 解决chrome浏览器访问时提示:ERR_UNSAFE_PORT
  5. 浓缩版java8新特性
  6. 移动端H5 腾讯地图sdk 当前位置 地址你解析 距离计算
  7. 平均工资达 1.6 万元!2020 年一线城市程序员工资大曝光
  8. JavaScript学习(十二)—removeAttribute方法、hasAttribute方法、createAttribute方法以及setAttributeNode方法
  9. Docker容器中常见的十种误区
  10. 批量生成Code128- C条码
  11. 企业即时通讯行业评测——imo VS RTX
  12. 利用WireShark分析H264码流
  13. 如何快速查看电脑的IP和MAC
  14. 学校计算机机房网络设备,[学校计算机机房的维护]学校计算机机房硬件设备清单...
  15. ICC Profile
  16. java简单搭建分布式架构
  17. 自制J-LINK遇到的问题
  18. HDLBits Lemmings1-4
  19. 他写代码如入定,人称阿里“扫地僧”
  20. post_thumbnail_html,WordPress 常用函数 / get_the_post_thumbnail

热门文章

  1. 用共振频率去理解神经网络-将乙烯模型运行300次的数据
  2. python dataframe是什么_python – 逐个构建DataFrame的最快方法是什么?
  3. 【Matlab 控制】利用 Matlab Function 绘制分段函数
  4. 1.8 简单卷积网络示例-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  5. 【工具】公网临时大文件传输工具
  6. Linux下dislocate命令用法,五个超酷Linux命令
  7. 盒子端 CSS 动画性能提升研究
  8. Chord算法实现具体
  9. 雅虎卖身Verizon对微软必应有什么影响?
  10. 二进制日志和数据更新的关系