Android之视频播放

fmms 10年前

    视频播放比音频播放要复杂一些,除了音频之外,还需要考虑一个视觉组件。为了解决这一问题,Android提供了一个专门的视图控制器 android.widget.VideoView,封装了MediaPlayer的创建和初始化过程,这个小部件可以用在任何布局管理器中,而且它提供了很多显示选项,包括缩放和着色。要实现播放功能,我们要做的是,创建一个VideoView小部件并将其设置为用户界面的内容,然后设置视图的路径或 URI并触发start()方法。

    视频播放除了需要按钮控件外,还需要一个显示视频的框架。对于我们这个例子,这里使用VideoView组件显示视频内容,没有创建我们自己的按钮控件,而是创建了一个MediaController来提供这些按钮(如果需要另外创建的话,也可以自己创建)。

代码如下:

-----------------------------MainActivity----------------------------

package cn.com.pan;    import android.app.Activity;  import android.net.Uri;  import android.os.Bundle;  import android.widget.MediaController;  import android.widget.VideoView;  public class MainActivity extends Activity {     private VideoView videoView;      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);          videoView = (VideoView) this.findViewById(R.id.videoView);          MediaController mc = new MediaController(this);          videoView.setMediaController(mc);          //videoView.setVideoURI(Uri.parse(""));          videoView.setVideoPath("/sdcard/test.mp4");          videoView.requestFocus();          videoView.start();      }  }

--------------------------------main.xml------------------------------

<?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:orientation="vertical"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      >      <VideoView       android:id="@+id/videoView"       android:layout_width="320dip"       android:layout_height="260dip"      ></VideoView>  </LinearLayout>

    在运行应用程序前,我们需要在模拟器中设置sdcard。创建一个新的SD卡映像mksdcard 512M mysdcard,使用emulator-sdcard mysdcard命令将SD卡加载到模拟器中,然后将文件test.mp4放入磁盘映像中,再启动应用程序。