产品文档 点播技术文档 Android 点播UI 2.0

Android点播UI SDK 2.0集成文档

changeLog

简介

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

项目截图

竖屏

横屏

集成SDK

远程依赖

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

源码依赖

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) 请先阅读点播core2.0 sdk快速集成文档**电梯直达

点播

VideoPlayActivity为标准的点播播放界面,该布局为全屏居中播放,用户可以参考实现任意组合下的点播播放。

  • 在线播放
 Intent intent = new Intent(VideoLauncherActivity.this, VideoPlayActivity.class);
 intent.putExtra("videoId", Long.parseLong(videoId));
 intent.putExtra("token", videoToken);
 intent.putExtra("isOffline", false);
 startActivity(intent);
  • 离线播放
 Intent intent = new Intent(VideoLauncherActivity.this, VideoPlayActivity.class);
 intent.putExtra("videoPath", videoPath);
 intent.putExtra("isOffline", true);
 startActivity(intent);

功能介绍

包结构

自定义点播UI

component包下提供一系列标准播放器UI组件,用户可以在ComponentManager管理类中配置需要显示的组件。

 /**
   * 默认组合的组件
   */
 public void generateDefaultComponentList(){
        componentMap.clear();
        componentChangeListeners.clear();
        addComponent(UIEventKey.KEY_LOADING_COMPONENT, new LoadingComponent(context));
        addComponent(UIEventKey.KEY_GESTURE_COMPONENT, new GestureComponent(context));
        //controller 需在gesture布局上方,否则会有事件冲突
        addComponent(UIEventKey.KEY_CONTROLLER_COMPONENT, new ControllerComponent(context));
        addComponent(UIEventKey.KEY_ERROR_COMPONENT, new ErrorComponent(context));
        addComponent(UIEventKey.KEY_MENU_COMPONENT, new MenuComponent(context));
        if(BJYPlayerSDK.IS_DEVELOP_MODE){
            addComponent(UIEventKey.KEY_VIDEO_INFO_COMPONENT, new MediaPlayerDebugInfoComponent(context));
        }
    }

自定义组件

1)ComponentContainer

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

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

3)BJYVideoView

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