这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要介绍了Android编程实现播放视频的方法,结合具体实例形式分析了Android使用VideoView类播放视频的相关操作技巧与注意事项,需要的朋友可以参考下
本文实例讲述了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()
方法来设置视频 文件的路径,这里我们需要事先在 SD 卡的根目录下放置一个名为 movie.3gp 的视频文件。 下面看一下各个按钮的点击事件中的代码。当点击 Play 按钮时会进行判断,如果当前 并没有正在播放音频,则调用
- initVideoPath()
方法开始播放。当点击 Pause 按钮时会判断,如果当前 视频正在播放,则调用
- start()
方法暂时播放。当点击 Replay 按钮时会判断,如果当前视频正在播放,则调用
- pause()
方法重头播放视频。最后在
- resume()
方法中,我们还需要调用一下
- onDestroy()
方法,将 VideoView 所占用的 资源释放掉。
- suspend()
现在将程序运行到手机上,然后点击一下 Play 按钮,就可以看到视频已经开始播放了, 如下图所示:
点击 Pause 按钮可以暂停视频的播放,点击 Replay 按钮可以重头播放视频。 这样的话,你就已经将 VideoView 的基本用法掌握得差不多了。不过,为什么它的用法
和 MediaPlayer 这么相似呢?其实 VideoView 只是帮我们做了一个很好的封装而已,它的背 后仍然是使用 MediaPlayer 来对视频文件进行控制的。另外需要注意,VideoView 并不是一 个万能的视频播放工具类,它在视频格式的支持以及播放效率方面都存在着较大的不足。所 以,如果想要仅仅使用 VideoView 就编写出一个功能非常强大的视频播放器是不太现实的。 但是如果只是用于播放一些游戏的片头动画,或者某个应用的视频宣传,使用 VideoView 还 是绰绰有余的。
希望本文所述对大家Android程序设计有所帮助。
来源: http://www.phperz.com/article/17/0915/345915.html