Android VideoView 播放视频
除了可以使用 MediaPlayer 播放视频外,Android 还提供了 VideoView 来播放视频
接下来我们将使用 VideoView 开发一个播放视频的应用,最终效果如下
-
创建一个 空的 Android 项目
cn.twle.android.VideoView
-
在 res 目录上点右键,然后选择
Android resource directory
,在弹出的界面中Resource type
项选择 raw 然后点击 OK -
下载 /static/i/android/fengfeng. mp4 放到
res/raw/
目录下注意去掉 fengfeng .mp4 之间的空格
-
修改
activity_main.xml
采用线性布局,添加一个 VideoView 和三个 Button<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="5dp"> <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="300dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/btn_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始" /> <Button android:id="@+id/btn_pause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="暂停 " /> <Button android:id="@+id/btn_stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="终止" /> </LinearLayout> </LinearLayout>
-
修改
MainActivity.java
绑定布局和创建 VideoView 实例,并且播放 raw 目录下的 fengfeng.mp4package cn.twle.android.videoview; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.net.Uri; import android.widget.Button; import android.widget.MediaController; import android.widget.VideoView; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private VideoView videoView; private Button btn_start; private Button btn_pause; private Button btn_stop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bindViews(); } private void bindViews() { videoView = (VideoView) findViewById(R.id.videoView); btn_start = (Button) findViewById(R.id.btn_start); btn_pause = (Button) findViewById(R.id.btn_pause); btn_stop = (Button) findViewById(R.id.btn_stop); btn_start.setOnClickListener(this); btn_pause.setOnClickListener(this); btn_stop.setOnClickListener(this); //根据文件路径播放 //if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { // videoView.setVideoPath(Environment.getExternalStorageDirectory() + "/lesson.mp4"); //} //读取放在 raw 目录下的文件 videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.fengfeng)); videoView.setMediaController(new MediaController(this)); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_start: videoView.start(); break; case R.id.btn_pause: videoView.pause(); break; case R.id.btn_stop: videoView.stopPlayback(); break; } } }
参考文档
-
官方 API 文档 VideoView
-
Android 支持的媒体格式列表 Supported Media Formats