视频

配置摄像头视频

  • 只需要HtSdk初始化时传入一个摄像头视频容器即可
  • 课件模式播放摄像头视频时,SDK会生成摄像头视频播放器加到该容器
调用示例:

//1.首先获取容器对象和access_token值
//画板布局容器竖屏模式一般设置4:3
FrameLayout pptContainer;   // 画板布局容器
FrameLayout videoViewContainer;  // 摄像头视频播放器布局容器
String access_token; //直播access_token

//2.通过getInstance()方法获取HtSdk对象实例
HtSdk mHtSdk = HtSdk.getInstance();

//3.通过init()方法传1中的对象值初始化SDK
mHtSdk.init(pptContainer, videoViewContainer, access_token);

//4.(非必需)调用setWhiteboardViewContainer方法设置画板容器
FrameLayout pptContainer2;
//mHtSdk.setWhiteboardViewContainer(pptContainer2);

配置桌面分享/插播视频

  • 初始化之后调用HtSdk的setDesktopVideoContainer方法设置桌面分享/插播视频容器
  • 如果没调用setDesktopVideoContainer方法设置容器,默认使用画板容器,桌面分享的视频会添加到画板的上一层
调用示例:

HtSdk mHtSdk = HtSdk.getInstance();
mHtSdk.setDesktopVideoContainer(desktopVideoContainer);

视频监听

视频切换监听

  • 当由课件模式或桌面分享/视频插播模式切换时,会调用该事件监听的onVideoModeChanging和onVideoModeChanged方法
  • 当视频(摄像头视频和桌面分享/插播视频)开始、停止播放时调用onVideoStart和onVideoStop方法
  • 当摄像头视频显示隐藏时调用onCameraShow和onCamerahide方法

com.talkfun.sdk.module.VideoModeType

视频模式类型

@类型常量说明:

类型常量 类型 描述
CAMERA_MODE int 摄像头视频类型(静态变量)
DESKTOP_MODE int 桌面分享视频类型(静态变量)
RTC_MODE int RTC 视频类型(静态变量)

调用示例:
HtSdk.getInstance().setOnVideoChangeListener(new OnVideoChangeListener() {
    @Override
    public void onVideoStart(int mode) {
    //视频开始播放
    }

    @Override
    public void onVideoStop(int mode) {
    //视频停止播放
    }

    @Override
    public void onVideoModeChanging(int beforeMode, int currentMode) {
    //视频模式切换中
    }

    @Override
    public void onVideoModeChanged() {
    //视频模式切换完成
    }

    @Override
    public void onCameraShow() {
    //摄像头显示
    }

    @Override
    public void onCameraHide() {
    //摄像头隐藏
    }
});

视频播放状态改变的监听回调

  • 调用HtSdk的setOnVideoStatusChangeListener()方法设置缓冲监听

com.talkfun.sdk.event.OnVideoStatusChangeListener 视频播放状态改变的监听回调

void onVideoStatusChange(int status, String msg)
设置可同时下载的线程数
参数:
    -status 状态
    -msg    信息(状态为STATUS_ERROR时有值,其他状态为空)

@状态常量说明:

状态常量 类型 描述
STATUS_PAUSE int 暂停
STATUS_PLAYING int 正在播放
STATUS_COMPLETED int 播放完成
STATUS_ERROR int 播放出错
STATUS_IDLE int 停止播放
STATUS_BUFFERING int 正在缓冲
STATUS_SEEKING int seek跳转中
STATUS_SEEKCOMPLETE int seek跳转完成
调用示例:

HtSdk.getInstance().setOnPlayerLoadStateChangeListener(new OnPlayerLoadStateChangeListener() {
    @Override
    public void onPlayerLoadStateChange(int loadState) {
    if (loadState == PlayerLoadState.MEDIA_INFO_BUFFERING_START) {
        Log.d(TAG, "缓冲开始");
    } else if (loadState == PlayerLoadState.MEDIA_INFO_BUFFERING_END) {
            Log.d(TAG, "缓冲结束");
        }
    }
});

视频缓冲监听

  • 调用HtSdk的setOnPlayerLoadStateChangeListener()方法设置缓冲监听

com.talkfun.sdk.event.OnPlayerLoadStateChangeListener 视频缓冲监听回调

调用示例:

HtSdk.getInstance().setOnPlayerLoadStateChangeListener(new OnPlayerLoadStateChangeListener() {
    @Override
    public void onPlayerLoadStateChange(int loadState) {
    if (loadState == PlayerLoadState.MEDIA_INFO_BUFFERING_START) {
        Log.d(TAG, "缓冲开始");
    } else if (loadState == PlayerLoadState.MEDIA_INFO_BUFFERING_END) {
            Log.d(TAG, "缓冲结束");
        }
    }
});

视频音量设置

初始化之后调用HtSdk的setPlayVolume(float volume)方法设置视频音量


调用示例:

 HtSdk.getInstance().setPlayVolume(1.0f);
Copyright Talkfun all right reserved,powered by Gitbook修订时间: 2021-01-11 17:47:15

results matching ""

    No results matching ""