百家云双师课堂
产品文档 回放技术文档 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.1'

源码依赖

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和视频窗口可自由切换,小窗口可跟随手指移动。

  • 在线播放
/**
  * 进入回放标准UI界面
  *
  * @param context                     Activity
  * @param roomId                      房间id
  * @param roomToken                   token
  * @param sessionId                   sessionId 长期课才需要填,非长期课默认传-1
  * @param onEnterPBRoomFailedListener 进房间错误监听,可为null
  */
public static void enterPBRoom(Context context, String roomId, String roomToken, String sessionId, OnEnterPBRoomFailedListener onEnterPBRoomFailedListener)
  • 离线播放
 /**
     * 进入离线回放标准UI界面
     * @param context         activity
     * @param videoModel      视频 DownloadModel
     * @param signalModel     信令 DownloadModel
     */
    public static void enterLocalPBRoom(Context context, DownloadModel videoModel, DownloadModel signalModel)

功能介绍

包结构

自定义组件

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的动态移除和添加。