视频播放器 第7节 竖屏的播放界面

第7节 竖屏的播放界面

播放视频的功能放在一个单独的Activity当中。我们将为它们设置横竖屏两种布局。

  1. 在竖屏的时候,上半部分播放视频,下半部分显示视频信息;

  2. 在设备旋转成横屏的时候,视频进行全屏播放;

7.1 启动视频播放界面

当点击视频列表的视频项时,就启动播放器播放对应的视频。这里我们要创建一个名字叫做VideoPlayer的Activity,用它来完成视频播放的任务。

另外,还要为ListView添加一个数据项点击时的监听函数,

  1. 实现ListViewOnItemClickListener接口;
  2. 把要播放视频地址的URI放入Intent
  3. 通过Intent,启动视频播放器的Activity-VideoPlayer;

这里使用的Intent是安卓系统当中连接各个组件之间的桥梁,它可以,

  1. 唤醒指定的组件,让它开始运行。例如在Activity A启动Activity B,或者启动一个Service A;
  2. 向各个组件传递数据;

7.2 VideoView

播放视频可以使用Android SDK提供的现成的控件VideoView。它是对media playersurface的封装,对于初次进行视频播放开发的我们,使用VideoView是最简单和方便的,不用关注太多细节上的实现方式。

VideoView的使用,非常简单,

  1. 在布局文件中放置一个VideoView控件,

  2. 在Activity当中,获取布局文件中的VideoView,让后设置要播放的视频地址,

  3. 使用VideoView提供的接口,控制视频播放的流程,

  4. 还可以为VideoView添加控制面板-MediaController,这个面板集成了播放进度拖动、暂停、继续播放等功能,还可以自动隐藏或显示。如果VideoView有父布局,那么为它添加的MediaController是附着在父布局的底部的。因此为了界面美观,我们在布局文件中,将VideoView单独放到一个FrameLayout当中。

    这里我们使用Android SDK自带的Media Controller

7.3 竖屏布局

我们将竖屏的布局设计成上下两个部分,上面用VideoView播放视频,下面用一个TableLayout展示视频信息,

这里把VideoView当到了FrameLayout当中,让播放的内容居中显示,并为这个区域设置了背景颜色。

7.4 设置视频信息

  1. 通过启动VideoPlayerIntent,获取视频播放的地址,

  2. 通过播放地址,查询该视频相关的其他信息-视频标题、视频文件大小、视频尺寸、视频创建时间,

7.5 设置播放

获取VideoView控件,并为VideoView设置播放的视频。为播放界面添加了Android SDK自带的控制面板-MediaController

7.6 视频的暂停与恢复

有的时候,用户需要暂停播放的视频,可以通过控制面板上的按钮操作;但有的时候,正在播放的视频会被系统打断,例如来了一个电话,电话Activity优先级最高,会显示出来,让视频播放器暂停播放;或者用户在播放的时候,按下了Home键,切换到了主屏幕,也需要暂停播放视频。当这些操作结束以后,再次把VideoPlayer切换到前台的时候,我们会希望视频继续从刚才被打断的地方继续播放。

我们已经了解了Activity的生命周期,
从一个Activity创建出来,到显示,再到用户主动退出销毁这个Activity,它将经历:
onCreate()->
onStart()->
onResume()->
用户可以与Activity交互->
onPause()->
onStop()->
onDestroy()
那么就可以选取其中的onResume()onPause(),进行视频播放暂停和继续播放的操作。

onPause()中,暂停播放的视频,记录下当前播放的位置;在onResume()中,从上次记录下中断的位置开始播放,