互动模块
头文件
VHPaasRoomImpl.h
类名
VHPaasRoomImpl
方法
- 初始化话接口必须在main函数中调用
virtual void InitSDK();
- 注册互动SDK事件监听回调接口
virtual bool RegisterVHRoomMonitor(VHRoomMonitor* monitor);
- 登录互动业务服务器
/*
/* 登录互动业务服务器.登录成功之后即可加入“互动媒体房间”
*/
virtual bool LoginHVRoom(const std::string& accesstoken, const std::string& appid, const std::string& thrid_user_id, const std::string& roomid);
- 登出互动服务处理
/*
* 登出互动服务处理
*/
virtual void LogoutHVRoom() ;
- 进入互动媒体房间
/*
* 进入互动媒体房间
*/
virtual void JoinVHMediaRoom();
- 退出互动媒体房间
/*
* 退出互动媒体房间
*/
virtual bool LeaveVHMediaRoom();
- 用户权限
/*
* 获取当前用户权限
*/
virtual Permission GetPermission();
permission
/*
* 进入互动房间后可用权限
* 注: didEnterRoom 后调用有效 具体权限如下:
kick_inav 踢出互动房间 / 取消踢出互动房间
kick_inav_stream 踢出路流 / 取消踢出流
publish_inav_another 推旁路直播 / 结束推旁路直播
apply_inav_publish 申请上麦
publish_inav_stream 推流
askfor_inav_publish 邀请用户上麦推流
audit_inav_publish 审核申请上麦
*/
- 请求SDK互动房间人员列表
/*
* SDK互动房间人员列表
*/
virtual void AsynGetVHRoomMembers();
- 获取被踢出互动房间人列表
/*
* 获取被踢出互动房间人列表
*/
virtual void GetKickInavList();
- 申请上麦
/*
* 申请上麦
*/
virtual int ApplyInavPublish();
- 审核申请上麦
/**
* 审核申请上麦
* audit_user_id: 受审核人第三放用户ID
* type: 是否同意 AuditPublish
* 返回值:VhallLiveErrCode
**/
virtual int AuditInavPublish(const std::string& audit_user_id, AuditPublish type);
- 邀请上麦
/**
* 邀请上麦
* audit_user_id: 受审核人第三方用户ID
**/
virtual int AskforInavPublish(const std::string& audit_user_id);
- 回应邀请
/**
* 上/下/拒绝上麦状态回执,用户成功推流后调用服务端API
* stream_id: 操作的流ID
* type int 否 1 上麦(默认) 2 下麦 3 拒绝上麦
*/
virtual void UserPublishCallback(PushStreamEvent type, const std::string& stream_id = std::string());
- 踢出流/取消踢出流
/**
* 踢出流/取消踢出流 实际作用于AccessToken,踢出流相当于下麦
* type int 否 1 踢出流(默认) 2 取消踢出流
* kick_user_id string 是 被踢出的第三方用户ID
**/
virtual int KickInavStream(const std::string& kick_user_id, KickStream type);
- 踢出互动房间/取消踢出互动房间
/**
* 踢出互动房间/取消踢出互动房间 作用于进入房间
* type int 否 1 踢出互动房间(默认) 2 取消踢出互动房间
* kick_user_id string 是 被踢出的第三方用户ID
* 返回值:VhallLiveErrCode
**/
virtual int KickInav(const std::string& kick_user_id, KickStream type);
- 开启旁路直播
/*
* 开启旁路直播
* live_room_id: 直播房间id
* width: 混流端布局的宽
* height: 混流端布局的高
* fps:帧率
* bitrate: 码率
* stream_id: 大画面流id
*/
virtual int StartPublishInavAnother(std::string live_room_id, LayoutMode layoutMode, std::string stream_id = std::string() , BROAD_CAST_DPI dip = BROAD_CAST_DPI_UHD, FRAME_FPS fps = FRAME_FPS_20, BITRATE bitrate = BITRATE_1000);
- 停止旁路直播
/*
* 停止旁路直播
* live_room_id: 直播房间id
*/
virtual int StopPublishInavAnother(std::string live_room_id);
- 设置观看端大屏展示的流
/**
* 当开启旁路直播之后,可以将某个用户的流设置在混流画面的主画面当中
**/
virtual int SetMainView(std::string stream_id);
- 判断当前媒体房间连接状态
virtual bool IsVHMediaConnected();
-
/* 开始摄像头\麦克风采集
* 回调检测 OnStartLocalCapture OnCameraCaptureErr OnLocalMicOpenErr
*/
virtual int StartLocalCapture(VideoProfileIndex index);
- 判断所选设备是否支持所选分辨率
/**
* 判断所选设备是否支持所选分辨率
*
**/
virtual bool IsSupported(const std::string& devGuid, VideoProfileIndex index);
- 判断给定设备是否支持给定分辨率
/*
* 判断给定设备是否支持给定分辨率
* dev 给定设备
* iProfileIndex 分辨率索引
*/
virtual bool IsSupported(std::shared_ptr<vhall::VideoDevProperty>& dev, int iProfileIndex);
- 停止摄像头、麦克风采集
/*停止摄像头\麦克风采集*/
virtual void StopLocalCapture();
- 开始摄像头数据推流
/*开始摄像头数据推流 回调检测:OnStartPushLocalStream*/
virtual int StartPushLocalStream();
- 停止摄像头数据推流
/*停止摄像头数据推流 回调检测:OnStopPushLocalStream*/
virtual int StopPushLocalStream();
- 判断当前采集类型是否正在推流
/**
* 当前采集类型是否正在推流
*/
virtual bool IsPushingStream(VHStreamType streamType);
- 获取流ID
/**
* 获取流ID
*/
virtual std::string GetUserStreamID(const std::wstring user_id, VHStreamType streamType);
- 判断是否正在数据采集
/*
* 当前采集类型是否正在进行本地数据源采集
*/
virtual bool IsCapturingStream(VHStreamType streamType);
- 判断当前互动房间是否存在桌面共享视频流
/**
* 当前互动房间是否存在桌面共享视频流
*/
virtual bool IsUserPushingDesktopStream();
- 判断当前互动房间是否存在插播视频流
/**
* 当前互动房间是否存在插播视频流
*/
virtual bool IsUserPushingMediaFileStream();
- 设置桌面共享最大推流宽高
/**
* 设置桌面共享最大推流宽高。
* 如果不调用此接口,默认最大推流按照1280 * 720 分辨率推流,超过设置长宽则进行自动按照最大值进行裁剪,小于设置最大值时,按照实际大小推流
**/
virtual void SetDesktopPushStreamParam(int width, int height, int fps = 20, int bitRate = 600);
- 开始桌面共享采集
/*开始桌面共享采集 回调检测:OnStartDesktopCaptureSuc OnStartDesktopCaptureErr*/
virtual int StartDesktopCapture(int index, int width, int height) ;
- 停止桌面共享采集
/*停止桌面共享采集*/
virtual void StopDesktopCapture() ;
- 开始桌面共享采集推流
/*开始桌面共享采集推流 回调检测:OnStartPushDesktopStream*/
virtual int StartPushDesktopStream() ;
- 停止桌面共享采集推流
/*停止桌面共享采集推流 回调检测:OnStopPushDesktopStream*/
virtual int StopPushDesktopStream() ;
- 设置插播文件最大推流宽高
/**
* 设置插播文件最大推流宽高。
* 如果不调用此接口,默认最大推流按照960 * 540 分辨率推流,超过设置长宽则进行自动按照最大值进行裁剪,小于设置最大值时,按照实际大小推流
**/
virtual void SetMediaFilePushStreamParam(int width, int height, int fps = 20, int bitRate = 600);
- 开始插播文件
/*开始插播文件*/
virtual int StartPlayMediaFile(std::string filePath) ;
- 开始渲染媒体数据流
/**开始渲染媒体数据流*/
virtual bool StartRenderStream(const std::wstring& user, void* wnd, vlive::VHStreamType streamType);
- 插播文件格式判断
/*
* 接口说明:查看当前播放的文件是否支持音频或视频格式,用于判断当前播放的是音频文件还是视频文件
* 接口参数:
type:音频、视频
* 返回值:true 支持/ false 不支持
*/
virtual bool IsSupportMediaFormat(CaptureStreamAVType type);
- 停止插播文件
/*停止插播文件*/
virtual void StopMediaFileCapture();
- 开始插播文件推流
/*开始插播文件推流 回调检测:OnStartPushMediaFileStream*/
virtual int StartPushMediaFileStream() ;
- 停止插播文件推流
/*停止插播文件推流 回调检测:OnStopPushMediaFileStream*/
virtual void StopPushMediaFileStream() ;
- 插播文件暂停处理
//插播文件暂停处理
virtual void MediaFilePause() ;
- 插播文件恢复处理
//插播文件恢复处理 暂听后恢复播放
virtual void MediaFileResume() ;
- 插播文件快进处理
//插播文件快进处理,快进到某个点
virtual void MediaFileSeek(const unsigned long long& seekTimeInMs) ;
- 插播文件总时长
//插播文件总时长
virtual const long long MediaFileGetMaxDuration() ;
- 插播文件当前播放的时间点
//插播文件当前时长
virtual const long long MediaFileGetCurrentDuration();
- 插播文件的当前状态
//插播文件的当前状态
//返回值:播放状态 MEDIA_FILE_PLAY_STATE
virtual int MediaGetPlayerState();
/*
* 插播文件的当前状态
PLAY_STATE_NothingSpecial = 0,
PLAY_STATE_Opening, //正在打开文件
PLAY_STATE_Buffering, //正在加载文件
PLAY_STATE_Playing, //正在播放中
PLAY_STATE_Paused, //已暂停
PLAY_STATE_Stopped, //已停止
PLAY_STATE_Ended, //播放完毕
PLAY_STATE_Error //播放失败
*/
- 获取当前系统摄像头列表
/**获取摄像头列表**/
virtual void GetCameraDevices(std::list<vhall::VideoDevProperty> &cameras);
- 获取当前系统麦克风列表
/**获取麦克风列表**/
virtual void GetMicDevices(std::list<vhall::AudioDevProperty> &micDevList) ;
- 获取当前系统扬声器列表
/**获取扬声器列表**/
virtual void GetPlayerDevices(std::list<vhall::AudioDevProperty> &playerDevList);
- 设置采集音频使用的麦克风
/*
* 设置使用的麦克风
* index: GetMicDevices获取的列表中 vhall::VideoDevProperty中的 devIndex
*/
virtual void SetUseMicIndex(int index);
- 设置采集视频使用的摄像头
/*
* 设置使用的摄像头
* index: GetCameraDevices获取的列表中 vhall::VideoDevProperty中的 guid
*/
virtual void SetUseCameraGuid(std::string guid);
- 设置播放声音的扬声器
/*
* 设置使用的扬声器
* index: GetPlayerDevices获取的列表中 VhallLiveDeviceInfo中的 devIndex
*/
virtual void SetUserPlayIndex(int index) ;
- 设置当前使用的麦克风音量
/**设置当前使用的麦克风音量**/
virtual bool SetCurrentMicVol(int vol);
- 当前使用的麦克风音量
/**获取当前使用的麦克风音量**/
virtual int GetCurrentMicVol();
- 设置扬声器音量
/**设置当前使用的扬声器音量**/
virtual bool SetCurrentPlayVol(int vol);
- 当前使用的扬声器音量
/**获取当前使用的扬声器音量**/
virtual int GetCurrentPlayVol();
- 本地摄像头打开状态
virtual bool IsCameraOpen();
- 打开摄像头
//打开摄像头
virtual bool OpenCamera();
- 关闭摄像头
//关闭摄像头
virtual bool CloseCamera();
- 本地麦克风打开状态
//本地麦克风开关状态
virtual bool IsMicOpen();
- 打开麦克风
/*
* 打开麦克风
*/
virtual bool OpenMic();
- 关闭麦克风
virtual bool CloseMic();
- 打开、关闭远端用户本地视频
/*
* 打开、关闭远端用户本地视频
*/
virtual int OperateRemoteUserVideo(std::wstring user_id, bool close = false) ;
```
#### - 打开、关闭远端用户本地声音
/*
* 打开、关闭远端用户本地声音
*/
virtual int OperateRemoteUserAudio(std::wstring user_id, bool close = false) ;