视频
配置摄像头视频
- 只需要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);