package com.zjw.mymultimedia; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.VideoView; //8.4.2 p307 播放视频 /* 参考网络资源: 1. http://blog.csdn.net/legend12300/article/details/52573109 Android assets 和 res/raw 区别。读取本地网页,读取文本字体样式,读取视频。 2. http://www.cnblogs.com/zhaowan/p/4743415.html Android studio相关设置及实现存在于工程目录中的视频播放 */ /* 在Android 中播放视频的方式有两种: *第一种方式是使用MediaPlayer 结合SurfaceView 来播放,通过MediaPlayer来控制视频的播放、暂停、进度等; 通过SurfaceView 来显示视频内容; 优点:灵活性高,可自定义 缺点:难度较大 *第二种方式是使用VideoView 来播放,这个类继承了SurfaceView 类,实现了MediaController. MediaPlayerController 接口(控制媒体播放),另外在VideoView上还有一个用于对媒体播放进行控制 的面板,包括快进、快退、播放、暂停按钮以及一个进度条; 优点:较简单,可直接使用 缺点:灵活性不高 */ //《第一行代码》中使用的是VideoView类 /* VideoView类常用方法 setVideoPath() 设置要播放的视屏文件的位置 start() 开始或继续播放视频 pause() 暂停播放视频 resume() 将视频从头开始播放 seekTo() 从指定的位置开始播放视频 isPlaying() 判断当前是否正在播放视频 getDuration() 获取载入的视频文件的时长 */ //主布局,三个Button(play,pause,replay),一个VideoView显示视频 /* 关于视频资源: 1.书中是存放在SD卡上,需要运行时权限(权限申请参考《第一行代码》笔记(3)),initVideoPath()中代码如下 File file=new File(Environment.getExternalStorageDirectory,"mov.avi"); mVvVideo.setVideoPath(file.getPath()); 2.这里是直接将视频文件扔进raw文件夹(res下新建raw文件夹) 3.视频文件必须是Android支持视频格式(3gp,wmv,mp4),并且命名必须是小写字母,数据,下划线 */ //注:VideoView背后仍是MediaPlayer,VideoView在视频格式支持与播放效率方面有较大不足 public class PlayVideo extends AppCompatActivity { private VideoView mVvVideo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_play_video); //找到控件 mVvVideo = (VideoView) findViewById(R.id.vv_video); //初始化播放资源路径 initVideoPath(); } //初始化播放资源 private void initVideoPath() { mVvVideo.setVideoURI(Uri.parse("android.resource://"+"com.zjw.mymultimedia"+"/" + R.raw.oppo)); } //Button点击事件。布局里面写了android:onClick="click" public void click(View v) { switch (v.getId()) { case R.id.btn_play://开始播放 if (!mVvVideo.isPlaying()) { mVvVideo.start(); } break; case R.id.btn_pause://暂停播放 if (mVvVideo.isPlaying()) { mVvVideo.pause(); } break; case R.id.btn_replay://重新播放 if (mVvVideo.isPlaying()) { mVvVideo.resume(); } break; default: break; } } @Override protected void onDestroy() { super.onDestroy(); if (mVvVideo!=null) { mVvVideo.suspend(); } } }
转载于:https://my.oschina.net/u/3620480/blog/1483951