4_2-带货场景-播放器

1 功能概述

视频播放是多场景项目中提供的基础功能,带货场景会使用到直播播放器和回放播放器。在带货场景模块中,对直播播放器整个布局区域的元素封装为PLVECLiveVideoLayout,对回放播放器整个布局区域的元素封装为PLVECPlaybackVideoLayout,它们共同实现IPLVECVideoLayout接口。

与云课堂场景不同,带货场景的播放器布局不包括控制栏,控制栏是通过叠加在播放器上层的Fragment来实现的,如回放的PLVECPalybackHomeFragment,具体细节见控制栏章节

2 使用演示

以下示例了如何创建直播播放器布局、回放播放器布局,以及它们的初始化及视频播放,代码如下:

上述方法的具体用例可以在polyv demo项目中的PLVECLiveEcommerceActivity找到。

3 接口介绍

3.1 IPLVECVideoLayout

带货场景下,针对播放器布局进行封装的接口。定义了:

1、外部直接调用的方法(包括common通用方法、live直播特有方法、playback回放特有方法) 2、需要外部响应的事件监听器

具体各个方法的用途、调用参数及返回值等,请参考IPLVECVideoLayout接口定义。

4 实现介绍

4.1 PLVECLiveVideoLayout

带货场景下的直播播放器布局,实现IPLVECVideoLayout接口。

该布局包含的元素有:直播播放器、子播放器、Logo、屏幕中央的播放暂停按钮等UI。

下面会列举介绍该布局中涉及到的主要方法。

4.1.1 初始化view方法

PLVECLiveVideoLayout继承于FrameLayout,在构造器中对使用initView方法对view进行了初始化处理。

4.1.2 初始化数据方法

PLVECLiveVideoLayoutinit方法是对外API,需要外部传入IPLVLiveRoomDataManager后进行初始化。

代码遵循MVP模式,一切业务逻辑都是通过Presenter来进行操作,隔离了视图层View和数据层Model

4.1.3 开始播放方法

PLVECLiveVideoLayoutstartPlay方法是对外API,该方法内部会调用PLVLivePlayerPresenterstartPlay方法来进行视频的加载及播放。

PLVECLiveVideoLayout内部持有PLVLivePlayerPresenter,因此除了内部可以自由调用播放器相关的方法外,也能将其封装成接口提供给外层调用,startPlay方法就是其中一个例子。

4.2 PLVECPlaybackVideoLayout

带货场景下的回放播放器布局,实现IPLVECVideoLayout接口

该布局包含的元素有:回放播放器、子播放器、Logo、屏幕中央的播放暂停按钮等UI。

下面会列举介绍该布局中涉及到的主要方法。

4.2.1 初始化view方法

PLVECPlaybackVideoLayout继承于FrameLayout,在构造器中对使用initView方法对view进行了初始化处理。

4.2.2 初始化数据方法

PLVECPlaybackVideoLayoutinit方法是对外API,需要外部传入IPLVLiveRoomDataManager后进行初始化。

4.2.3 开始播放方法

PLVECPlaybackVideoLayoutstartPlay方法是对外API,该方法内部会调用PLVPlaybackPlayerPresenterstartPlay方法来进行视频的加载及播放。

PLVECPlaybackVideoLayout内部持有PLVPlaybackPlayerPresenter,因此除了内部可以自由调用播放器相关的方法外,也能将其封装成接口提供给外层调用,startPlay方法就是其中一个例子。

5 控制栏

带货场景的直播播放器布局PLVECLiveVideoLayout和回放播放器布局PLVECPlaybackVideoLayout均不包括控制栏的相关控件,控制栏是通过叠加在播放器布局上层的Fragment实现的

5.1 回放控制栏 - PLVECPalybackHomeFragment

PLVECPalybackHomeFragment是回放首页页面,包括主持人信息、播放控制、进度条、更多

其中控制播放的相关操作是通过调用PLVECLiveEcommerceActivity设置的回调接口playbackHomeViewActionListener实现的,下面以切换暂停播放的按钮举例:

Last updated

Was this helpful?