百家云双师课堂
产品文档 回放技术文档 Android 回放UI 2.0

Android回放UI SDK 2.0集成文档

changeLog

1.x版本回放UI文档链接

简介

带UI的回放SDK基于回放Core SDK,提供标准的UI实现,方便用户快速集成投入使用。此SDK代码开源,开发者可以自己建立分支进行开发,也欢迎给我们提issue
源码地址:http://git.baijiashilian.com/open-android/VideoplayerUI2.0Demo(master分支)

项目截图

竖屏

横屏

apk文件位于apk_bin文件夹下

集成SDK

远程依赖

implementation 'com.baijia.player:VideoplayerUI:2.1.5'

源码依赖

1)IDE 推荐使用最新版Android studio集成SDK点击下载(需科学上网)
2)clone源码 确保电脑配置git命令行工具,执行如下指令,将源码clone到您的文件目录中

git clone -b master http://git.baijiashilian.com/open-android/VideoplayerUI2.0Demo.git

3)配置项目settings.gradle文件

include ':videoplayer-ui'  
...其他module

project(':videoplayer-ui').projectDir = new File('xxx(您的源码路径)/VideoPlayerUI/videoplayer-ui')

4)添加依赖
在需要的module的build.gradle文件中添加源码依赖:

compile project(path: ':videoplayer-ui')

快速集成

1)在Application初始化sdk

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
         new BJYPlayerSDK.Builder(this)
                .setDevelopMode(true)
                    //请替换为真实的专属域名
                .setCustomDomain("demo123")
                .setEncrypt(true)
                .build();
    }
}

通过BJYPlayerSDK.Builder配置参数,可配置的参数有

  • 设置开发者模式。开发者模式开启后会打印关键日志、显示播放器调试模板,方便开发,正式发版建议关掉
  /**
    * 设置开发者模式
    * @param isDevelopMode true 设置为开发者模式
    * @return
    */
    public Builder setDevelopMode(boolean isDevelopMode)
  • 设置专属域名。专属域名从百家云账号中心获取,传入规则:例如专属域名为 demo123.at.baijiayun.com,则前缀为 demo123,参考 专属域名说明
 /**
   * 设置专属域名
   *
   * @param domain 专属域名
   */
   public Builder setCustomDomain(String domain)
  • 设置是否加密,对在线播放和下载均有效
/**
  * 设置加密
  * @param isEncrypt true 加密,对在线和下载均有效
  * @return
  */
  public Builder setEncrypt(boolean isEncrypt)

2)请先阅读回放core sdk文档

请先阅读回放core2.0 sdk快速集成文档电梯直达

回放

PBRoomActivity为标准的回放播放界面,包含了PPT区域、视频区域、聊天消息展示区,同时PPT和视频窗口可自由切换,小窗口可跟随手指移动。

回放入口类PBRoomUI.java
VideoPlayerConfig包含一系列配置相关参数,结构如下

 //是否后台播放
    public boolean supportBackgroundAudio = false;
    //是否循环播放
    public boolean supportLooping = true;
    //是否记忆播放
    public boolean supportBreakPointPlay = true;
    //用户名
    public String userName;
    //用户ID
    public String userId;
    //跑马灯
    public LPHorseLamp horseLamp;

设置跑马灯

 /**
     * 设置跑马灯参数
     * @param horseLamp
     * @return
     */
    public VideoPlayerConfig setHorseLamp(LPHorseLamp horseLamp){
        this.horseLamp = horseLamp;
        return this;
    }

     /**
     * 设置跑马灯信息
     * @param value     跑马灯显示内容
     * @param fontSize  字体大小
     * @param color     字体颜色
     */
    public LPHorseLamp(String value, int fontSize, String color) {
        this.value = value;
        this.fontSize = fontSize;
        this.color = color;
    }
  • 在线播放
 /**
     * 进入回放标准UI界面
     *
     * @param context                     Activity
     * @param roomId                      房间id
     * @param roomToken                   token
     * @param sessionId                   sessionId 长期课才需要填,非长期课默认传-1
     * @param version                     裁剪版本号
     * @param playerConfig                创建播放器的配置项, null则取默认配置项
     * @param onEnterPBRoomFailedListener 进房间错误监听,可为null
     */
    public static void enterPBRoom(Context context, String roomId, String roomToken, String sessionId, int version, VideoPlayerConfig playerConfig, OnEnterPBRoomFailedListener onEnterPBRoomFailedListener)
  • 离线播放
 /**
     * 进入离线回放标准UI界面
     * @param context        activity
     * @param videoModel     视频 DownloadModel
     * @param signalModel    信令 DownloadModel
     * @param playerConfig   创建播放器的配置项, null则取默认配置项
     */
    public static void enterLocalPBRoom(Context context, DownloadModel videoModel, DownloadModel signalModel, VideoPlayerConfig playerConfig)

功能介绍

包结构

自定义组件

1)ComponentContainer

ComponentContainer extends FrameLayout,持有ComponentManager初始化各个播放器组件,实现手势监听,并且控制自定义事件和触摸事件的分发。

2)BaseVideoView
BaseVideoView extends FrameLayout,持有IBJYVideoPlayer引用获取播放器回调,持有ComponentContainer通知各个component组件更新状态,内部实现网络监听逻辑。

3)BJYVideoView

BJYVideoView extends BaseVideoView,初始化BJYPlayerView和各个component,监听播放器回调通知各个component。

4)BJYPlaybackContainer

BJYPlaybackContainer extends BaseVideoView,专门针对回放实现PPT和视频大小屏切换的组件,绑定PBRoom和BJYVideoPlayer,实现视频状态监听和视频控制,同时支持PPT的动态移除和添加。