public class QHVCNetGodSees extends QHVCNet
//####################################### 看设备直播流程 ####################################### //可参考:com.qihoo.videocloud.device.DeviceLiveActivity QHVCNetGodSees.startLocalServer(this, Utils.getCacheDir(), Utils.getDeviceId(this), getResources().getString(R.string.config_bid), params); QHVCNetGodSees.setGodSeesP2PConnectionSucceedMaxWaitTime(5000); sessionId = createSessionId(); boolean ret = QHVCNetGodSees.createGodSeesSession(sessionId, sn, channelNo, QHVCNetGodSees.QHVC_NET_GODSEES_STREAM_TYPE_MAIN, QHVCNetGodSees.QHVC_NET_GODSEES_SESSION_TYPE_LIVE, godseesPlayMode); if (ret) { // 定时更新加密秘钥,用于加密视频数据 QHVCNetGodSees.updateGodSeesVideoStreamSecurityKeys(String serialNumber, int[] keys, String[] values)} String url = QHVCNetGodSees.getGodSeesPlayUrl(sessionId); if (!TextUtils.isEmpty(url)) { playUrl = url; startPlayerForLive(); }
QHVCNetGodSees.setOnGodSeesVerifyTokenListener(sessionId, new QHVCNetGodSees.OnGodSeesVerifyTokenListener() { public void onGodSeesVerifyToken(String sessionId, int result) { if (result == 0) { //设备校验成功,设备开始发送数据 } } }); QHVCNetGodSees.setOnGodSeesErrorListener(...) // 借用业务长连通道,发送sdk信令信息(用于p2p不通时,切换转发模式) QHVCNetGodSees.setOnGodSeesSignallingSendDataListener(new QHVCNetGodSees.OnGodSeesSignallingSendDataListener() { public int onGodSeesSignallingSendData(String destId, String data) { xxxSendingMessage(data); } }); // 收到sdk信令消息,回调给sdk XXXLongLive.setOnArrivedMessageListener(new XXXLongLive.OnArrivedMessageListener() { public void onArrivedMessage(String msg) { if (是sdk信令消息){ QHVCNetGodSees.receiveGodSeesSignallingData(data); } } }); // close 播放器(QHVCPlayer)关闭 QHVCNetGodSees.destroyGodSeesSession(sessionId); QHVCNetGodSees.setOnGodSeesSignallingSendDataListener(null); QHVCNetGodSees.stopLocalServer(); //-------------------------------------- private void startPlayerForLive(){ ... Mapoptions = new HashMap<>(); options.put(IQHVCPlayerAdvanced.KEY_OPTION_PLAY_MODE, IQHVCPlayerAdvanced.PLAYMODE_LOWLATENCY); options.put(IQHVCPlayerAdvanced.KEY_OPTION_SESSION_ID, sessionId);//注意: 和QHVCNetGodSees.createGodSeesSession使用相同的sessionId qhvcPlayer.setDataSource(IQHVCPlayer.PLAYTYPE_LIVE, playUrl, channelId, "", options); qhvcPlayer.setOnPreparedListener(new IQHVCPlayer.OnPreparedListener() { public void onPrepared() { int ret = QHVCNetGodSees.verifyGodSeesBusinessTokenToDevice(sessionId, token); if (ret) { qhvcPlayer.start(); } } } ... } //####################################### 看设备卡录流程 ####################################### //可参考:com.qihoo.videocloud.device.DeviceRecordActivity QHVCNetGodSees.initialize(this, Utils.getCacheDir(), Utils.getDeviceId(this), getResources().getString(R.string.config_bid), params); QHVCNetGodSees.setGodSeesP2PConnectionSucceedMaxWaitTime(5000); sessionId = createSessionId(); boolean ret = QHVCNetGodSees.createGodSeesSession(sessionId, sn, deviceModel.getChannelNo(), QHVCNetGodSees.QHVC_NET_GODSEES_STREAM_TYPE_MAIN, QHVCNetGodSees.QHVC_NET_GODSEES_SESSION_TYPE_RECORD, godseesPlayMode); if (ret) { // 定时更新加密秘钥,用于加密视频数据 QHVCNetGodSees.updateGodSeesVideoStreamSecurityKeys(String serialNumber, int[] keys, String[] values)} String url = QHVCNetGodSees.getGodSeesPlayUrl(sessionId); if (!TextUtils.isEmpty(url)) { playUrl = url; startPlayerForCardRecord(); int tokenRet = QHVCNetGodSees.verifyGodSeesBusinessTokenToDevice(sessionId, token); if (tokenRet) { } } } QHVCNetGodSees.setOnGodSeesVerifyTokenListener(sessionId, new QHVCNetGodSees.OnGodSeesVerifyTokenListener() { public void onGodSeesVerifyToken(String sessionId, int result) { if (result == 0) { //设备校验成功 if (!TextUtils.isEmpty(playUrl)) { int ret = QHVCNetGodSees.getGodSeesRecordTimeline(sessionId); if (ret) { } } } } }); QHVCNetGodSees.setOnGodSeesRecordTimelineListener(sessionId, new QHVCNetGodSees.OnGodSeesRecordTimelineListener() { public void onGodSeesRecordTimeline(String sessionId, RecordTimeline[] data) { // 卡录时间轴数据回调 if (data != null && data.length > 0) { boolean ret = QHVCNetGodSees.setGodSeesRecordSeek(sessionId, data[0].getStartMS()); if (ret) { // 当收到setOnGodSeesSeekCompleteListener消息时,设备开始发送数据 } } } }); QHVCNetGodSees.setOnGodSeesRecordUpdateCurrentTimestampListener(sessionId, new QHVCNetGodSees.OnGodSeesRecordUpdateCurrentTimestampListener() { public void onGodSeesRecordUpdateCurrentTimestamp(String sessionId, long param1) { // 卡录播放时间进度 } }); QHVCNetGodSees.setOnGodSeesSeekCompleteListener(...); QHVCNetGodSees.setOnGodSeesRecordPlaybackRateListener(...); QHVCNetGodSees.setOnGodSeesRecordPlayCompleteListener(...); QHVCNetGodSees.setOnGodSeesErrorListener(...) // 借用业务长连通道,发送sdk信令信息(用于p2p不通时,切换转发模式) QHVCNetGodSees.setOnGodSeesSignallingSendDataListener(new QHVCNetGodSees.OnGodSeesSignallingSendDataListener() { public int onGodSeesSignallingSendData(String destId, String data) { xxxSendingMessage(data); } }); // 收到sdk信令消息,回调给sdk XXXLongLive.setOnArrivedMessageListener(new XXXLongLive.OnArrivedMessageListener() { public void onArrivedMessage(String msg) { if (是sdk信令消息){ QHVCNetGodSees.receiveGodSeesSignallingData(data); } } }); // close 播放器(QHVCPlayer)关闭 QHVCNetGodSees.destroyGodSeesSession(sessionId); QHVCNetGodSees.setOnGodSeesSignallingSendDataListener(null); QHVCNetGodSees.stopLocalServer(); //-------------------------------------- private void startPlayerForCardRecord(final long seekPos){ ... Map options = new HashMap<>(); options.put(IQHVCPlayerAdvanced.KEY_OPTION_PLAY_MODE, IQHVCPlayerAdvanced.PLAYMODE_FLUENCY); options.put(IQHVCPlayerAdvanced.KEY_OPTION_SESSION_ID, sessionId);//注意: 和QHVCNetGodSees.createGodSeesSession使用相同的sessionId qhvcPlayer.setDataSource(IQHVCPlayer.PLAYTYPE_LIVE, playUrl, channelId, "", options); ... } }
QHVCNet.QHVCNetCachedSize, QHVCNet.QHVCNetCachePersistenceCallback, QHVCNet.QHVCNetConnectServiceType, QHVCNet.Socks5HeaderCallback
PARAM_ENABLE_DOWN_SSL_SO, QHVC_NET_ACCESS_DENIED, QHVC_NET_FILE_INVALID, QHVC_NET_FILE_IO_FAILED, QHVC_NET_KEY_OPTION_OPEN_LOCALSERVER, QHVC_NET_KEY_OPTION_OPEN_P2P, QHVC_NET_KEY_OPTION_P2P_TASK_MODE, QHVC_NET_LOG_LEVEL_DEBUG, QHVC_NET_LOG_LEVEL_FATAL, QHVC_NET_LOG_LEVEL_INFO, QHVC_NET_LOG_LEVEL_NONE, QHVC_NET_LOG_LEVEL_WARN, QHVC_NET_NO_SPACE, QHVC_NET_NOT_VIDEO, QHVC_NET_P2P_TASK_MODE_DOWNLAOD, QHVC_NET_P2P_TASK_MODE_PLAY, QHVC_NET_PARAM_CACHE_SIZE, QHVC_NET_PARAM_CHANNEL_ID, QHVC_NET_PARAM_FORCE_P2P, QHVC_NET_PARAM_USE_INTERNAL_SIGNALING, QHVCNET_CONNECT_SERVICE_TYPE_EXTERNAL, QHVCNET_CONNECT_SERVICE_TYPE_MQTT, QHVCNET_CONNECT_SERVICE_TYPE_TRACKER
Constructor and Description |
---|
QHVCNetGodSees() |
Modifier and Type | Method and Description |
---|---|
static void |
addOnGodSeesSignallingReceiveDataListener(QHVCNetGodSees.OnGodSeesSignallingReceiveDataListener listener)
添加 帝视接收外部信令通道数据
注意: 只有在设置
QHVCNet.QHVC_NET_PARAM_USE_INTERNAL_SIGNALING 为Boolean.TRUE模式下,该方法调用才有效 |
static int |
coreOnAppStart(java.lang.String bid,
java.lang.String pid,
java.lang.String ver,
java.lang.String os,
java.lang.String mid,
java.lang.String model,
java.lang.String urlCC,
java.util.Map<java.lang.String,java.lang.Object> params)
通知SDK app启动
必须在app启动的第一时间调用,且在整个app生命周期只调用一次
|
static int |
createGodSeesSession(java.lang.String sessionId,
java.lang.String clientId,
java.lang.String serviceName,
java.lang.String userId,
java.lang.String serialNumber,
int deviceChannelNumber,
java.lang.String serviceSign,
int sessionType,
java.util.Map<java.lang.String,java.lang.Object> options)
帝视创建网络会话实例(旧)
|
static void |
createGodSeesSessionByProductId(java.lang.String productId,
long authTime,
int randomNum,
java.lang.String productSign,
java.lang.String sessionId,
java.lang.String userId,
java.lang.String serialNumber,
int deviceChannelNumber,
int sessionType,
java.util.Map<java.lang.String,java.lang.Object> options,
QHVCNetGodSees.OnCreateSessionCompletionListener<java.lang.Integer> listener)
帝视创建网络会话实例
使用license鉴权方案开流请使用此方法开流
|
static long |
decryptGodSeesMediaDataWithSecretKey(int decryptionRules,
java.lang.String secretKey,
long nativePlayerCtx,
long nativePlayerPkt)
解密媒体数据。原地解密数据
|
static int |
destroyGodSeesSession(java.lang.String sessionId)
销毁网络会话实例
|
static int |
enableGodSeesMonitorVideoState(boolean isOpen)
设置是否监控视频状态
|
static int |
extendDeviceIdSwitch(int onoff)
扩展 device_sn 开关
此接口专门给旧业务使用,新业务调用无效
此接口必须在LSNVDcore_on_app_start之前调用
|
static int |
getDeviceFileDownloadUrlWithFileKey(java.lang.String fileKey,
java.lang.String clientId,
java.lang.String appId,
java.lang.String userId,
java.lang.String serialNumber,
java.lang.String businessSign,
java.lang.String token,
long rangeStart,
long rangeEnd,
int maxReconnectCount,
QHVCNetGodSees.onGetDeviceFileDownloadUrlListener downloadUrlListener)
获取设备文件下载的链接
|
static void |
getDeviceFileDownloadUrlWithFileKeyByProductId(java.lang.String productId,
long authTime,
int randomNum,
java.lang.String productSign,
java.lang.String fileKey,
java.lang.String appId,
java.lang.String userId,
java.lang.String serialNumber,
java.lang.String token,
long rangeStart,
long rangeEnd,
int maxReconnectCount,
QHVCNetGodSees.onGetDeviceFileDownloadUrlListener downloadUrlListener)
以licence鉴权方式进行请求获取设备文件下载的链接
|
static java.lang.String |
getGodSeesPlayUrl(java.lang.String sessionId)
获取帝视指定会话播放的链接
|
static int |
getGodSeesRecordTimeline(java.lang.String sessionId,
long startTimeMS,
long endTimeMS)
获取卡录时间轴信息(当调用
pullRemoteDeviceDataStream(java.lang.String, java.lang.String) 函数通知设备验证token成功后,才能调用此接口) |
static int |
getGodSeesRecordTimelineWithType(java.lang.String sessionId,
int recordType,
long startTimeMS,
long endTimeMS)
获取卡录时间轴信息(当调用
pullRemoteDeviceDataStream(java.lang.String, java.lang.String) 函数通知设备验证token成功后,才能调用此接口)
当固件设备上存在多份卡录时,使用此方法。 |
static int |
getRecordMultiTypeDay(java.lang.String sessionId,
int multi_flag)
获取哪些天有卡录数据
|
static int |
getRecordMultiTypeTimeline(java.lang.String sessionId,
int multi_flag,
long startTimeMS,
long endTimeMS)
同时获取多种类型的卡录时间轴信息
在同一个sid中,调用了该接口后,不能再调用getRecordTimeline和getRecordTimelineWithType接口,SDK里面已经被禁止
|
static void |
handShake(java.lang.String serialNumber) |
static int |
mediaDataCallbackSwitch(java.lang.String sid,
int onoff) |
static int |
preConnectGodSeesDevice(java.lang.String serialNumber,
int deviceChannelNumber)
预连接设备
|
static void |
preVerifySignatureByProductId(java.lang.String productId,
long authTime,
int randomNum,
java.lang.String productSign,
java.lang.String serialNumber,
QHVCNetGodSees.OnpreVerifySignatureCompletionListener listener)
预先验证产品签名信息
建议在用户登录成功后立即调用,用于提高观看视频流的首屏体验
|
static int |
pullRemoteDeviceDataStream(java.lang.String sessionId,
java.lang.String token)
传输业务token给设备验证
|
static int |
receiveGodSeesSignallingData(java.lang.String msg)
帝视接收信令数据 (当调用
pullRemoteDeviceDataStream(java.lang.String, java.lang.String) 函数通知设备验证token成功后,才能调用此接口) |
static void |
removeOnGodSeesSignallingReceiveDataListener(QHVCNetGodSees.OnGodSeesSignallingReceiveDataListener listener)
删除 帝视接收外部信令通道数据
注意: 只有在设置
QHVCNet.QHVC_NET_PARAM_USE_INTERNAL_SIGNALING 为Boolean.TRUE模式下,该方法调用才有效 |
static int |
requestGodSeesSignallingSendData(java.lang.String sn,
java.lang.String data)
借用帝视信令通道,发送数据
注意: 只有在设置
QHVCNet.QHVC_NET_PARAM_USE_INTERNAL_SIGNALING 为Boolean.TRUE模式下,该方法调用才有效 |
static int |
sendAudio(java.lang.String sid,
int frameType,
long frameData,
int frameDataLen,
long dts,
int nbChannle,
int sampleRate) |
static int |
setGodSeesDeviceNetworkAddress(java.lang.String sn,
java.lang.String ip,
int port)
设置设备网络地址
|
static void |
setGodSeesDevicePrefix(java.lang.String serialNumber,
java.lang.String prefix) |
static int |
setGodSeesDeviceSupportSignalling(java.lang.String serialNumber,
int connectType)
设置设备支持信令类型,用于兼容老设备,如果不调,该设备长连默认tracker
|
static int |
setGodSeesNetworkConnectType(int netConnectType)
设置允许连接设备的网络连接类型
|
static int |
setGodSeesP2PConnectionSucceedMaxWaitTime(int ms)
设置最大等待p2p连接成功时间
|
static int |
setGodSeesRecordPause(java.lang.String sessionId)
暂停观看卡录(当调用
pullRemoteDeviceDataStream(java.lang.String, java.lang.String) 函数通知设备验证token成功后,才能调用此接口) |
static int |
setGodSeesRecordPlayRate(java.lang.String sessionId,
double rate)
设置观看卡录速度(当调用
pullRemoteDeviceDataStream(java.lang.String, java.lang.String) 函数通知设备验证token成功后,才能调用此接口) |
static int |
setGodSeesRecordResume(java.lang.String sessionId)
恢复观看卡录(当调用
pullRemoteDeviceDataStream(java.lang.String, java.lang.String) 函数通知设备验证token成功后,才能调用此接口) |
static int |
setGodSeesRecordSeek(java.lang.String sessionId,
long timeStampByMS)
观看从指定位置之后的卡录(当调用
pullRemoteDeviceDataStream(java.lang.String, java.lang.String) 函数通知设备验证token成功后,才能调用此接口) |
static void |
setOnGodSeesDestroyListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesDestroyListener listener)
设置会话结束回调
|
static void |
setOnGodSeesErrorListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesErrorListener listener)
设置错误回调
|
static void |
setOnGodSeesFrameDataListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesReceiveFrameDataListener listener) |
static void |
setOnGodSeesPullStreamSucceedListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesPullStreamSucceedListener listener)
设置业务token验证结果回调
|
static void |
setOnGodSeesRecordPauseListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesRecordPauseListener listener)
看卡录暂停响应监听
|
static void |
setOnGodSeesRecordPlaybackRateListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesRecordPlaybackRateListener listener)
设置倍速执行完成回调
|
static void |
setOnGodSeesRecordPlayCompleteListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesRecordPlayCompleteListener listener)
设置卡录播放完毕回调
|
static void |
setOnGodSeesRecordResumeListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesRecordResumeListener listener)
看卡录恢复播放响应监听
|
static void |
setOnGodSeesRecordTimelineListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesRecordTimelineListener listener)
设置卡录时间轴结果回调
|
static void |
setOnGodSeesRecordUpdateCurrentTimestampListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesRecordUpdateCurrentTimestampListener listener)
设置当前播放的卡录时间点回调
|
static void |
setOnGodSeesRtcSessionListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesRtcSessionListener listener)
设置rtc session 状态回调
|
static void |
setOnGodSeesSeekCompleteListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesSeekCompleteListener listener)
设置seek执行完成监听
|
static void |
setOnGodSeesSignallingSendDataListener(QHVCNetGodSees.OnGodSeesSignallingSendDataListener listener)
设置发送信令功能接口
|
static void |
setOnGodSeesUserRequestDeviceStopListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesUserRequestDeviceStopListener listener)
设置 设备触发结束 回调
|
static void |
setOnGodSeesVideoStateListener(java.lang.String sessionId,
QHVCNetGodSees.OnGodSeesVideoStateListener listener)
视频状态信息回调(一般用于调试)
|
static int |
setSendAudioParam(java.lang.String sid,
int audioCodecType,
int sampleRate,
int sampleDepth,
int audioChannelConfig) |
static boolean |
startLocalServer(Context context,
java.lang.String cacheDir,
java.lang.String deviceId,
java.lang.String businessId,
java.util.Map<java.lang.String,java.lang.Object> params)
Deprecated.
|
static boolean |
startService(Context context,
java.lang.String cacheDir,
java.lang.String deviceId,
java.lang.String businessId,
java.util.Map<java.lang.String,java.lang.Object> params,
QHVCNetGodSees.OnGodSeesCompletionListener completionListener)
初始化QHVCNet,全局只用调用一次,需要和
stopService() 配对使用 |
static int |
startTalk(java.lang.String sid,
int talkMode) |
static void |
stopLocalServer()
Deprecated.
|
static void |
stopService()
|
static int |
stopTalk(java.lang.String sid) |
static void |
upDateDevicePrefix(java.lang.String serialNumber,
java.lang.String prefix) |
static int |
updateGodSeesVideoStreamSecurityKeys(java.lang.String serialNumber,
int[] keys,
java.lang.String[] values,
int secretIntervalSec)
更新视频流解密秘钥(keys与values 一一对应)(当调用
pullRemoteDeviceDataStream(java.lang.String, java.lang.String) 函数通知设备验证token成功后,才能调用此接口) |
cachePersistence, cancelCachePersistence, cancelP2pTask, cancelPrecache, clearCache, clearP2PCache, doPrecache, doPrecache, enableCache, enablePrecacheInMobileNetwork, getCachePersistenceSize, getFileAvailedSize, getFileCachedSize, getP2pTaskInfo, getP2pVendorByUrl, getPlayUrl, getPlayUrl, getPlayUrl, getVersion, isCacheFinished, isCachePersistenceFinished, isEnableCache, isEnablePrecacheInMobileNetwork, isStartLocalServer, pauseCachePersistence, rebuildPersistence, resumeCachePersistence, setCachePersistenceCallback, setCacheSize, setLogLevel, setP2PCacheDir, setP2PCacheSize, setSocks5HeaderCallBack, startService
public static final java.lang.String MODEL_NAME
public static final int QHVC_NET_GODSEES_NETWORK_CONNECT_TYPE_P2P
public static final int QHVC_NET_GODSEES_NETWORK_CONNECT_TYPE_RELAY
public static final int QHVC_NET_GODSEES_NETWORK_CONNECT_TYPE_DIRECT_IP
public static final int QHVC_NET_GODSEES_SESSION_TYPE_LIVE
public static final int QHVC_NET_GODSEES_SESSION_TYPE_RECORD
public static final int QHVC_NET_GODSEES_SESSION_TYPE_FILE_DOWNLOAD
public static final int QHVC_NET_GODSEES_STREAM_TYPE_MAIN
public static final int QHVC_NET_GODSEES_STREAM_TYPE_DEPUTY
public static final int QHVC_NET_GODSEES_STREAM_TYPE_THIRD
public static final int QHVC_NET_GODSEES_PLAYER_RECEIVE_DATA_MODE_CALLBACK
public static final int QHVC_NET_GODSEES_PLAYER_RECEIVE_DATA_MODE_FLV
public static final int QHVC_NET_GODSEES_DECRYPTION_RULES_NONE
public static final int QHVC_NET_GODSEES_DECRYPTION_RULES_XOR
public static final int QHVC_NET_GODSEES_DECRYPTION_RULES_RC4
public static final int QHVC_NET_GODSEES_RECORD_DATA_TYPE_NORMAL
public static final int QHVC_NET_GODSEES_RECORD_DATA_TYPE_PICTURE_CHANGE
public static final int QHVC_NET_GODSEES_RECORD_DATA_TYPE_INTELLIGENT
public static final java.lang.String QHVC_NET_GODSEES_KEY_STREAM_TYPE
createGodSeesSession(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, int, java.util.Map<java.lang.String, java.lang.Object>)
可选参数options配置项, 取值QHVCNetGodSeesStreamType
public static final java.lang.String QHVC_NET_GODSEES_KEY_PLAYER_RECEIVE_DATA_TYPE
createGodSeesSession(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, int, java.util.Map<java.lang.String, java.lang.Object>)
可选参数options配置项, 取值QHVCNetGodSeesPlayerReceiveDataMode
public static final java.lang.String QHVC_NET_GODSEES_KEY_RECONNECT_MAX_COUNT
createGodSeesSession(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, int, java.util.Map<java.lang.String, java.lang.Object>)
可选参数options配置项, 取值 > 0public static final int QHVC_NET_GODSEES_ERROR_CODE_SUCCESS
public static final int QHVC_NET_GODSEES_ERROR_CODE_FAILED
public static final int QHVC_NET_GODSEES_ERROR_CODE_INVALID_PARAM
public static final int QHVC_NET_GODSEES_ERROR_CODE_SIGNALLING_MODEL_ERROR
public static final int QHVC_NET_GODSEES_ERROR_CODE_MQTT_SUBSCRIBE_ERROR
public static final int QHVC_NET_GODSEES_ERROR_CODE_MQTT_CONNECT_ERROR
public static final int QHVC_NET_GODSEES_ERROR_CODE_MQTT_CONNECT_WAIT_TIMEOUT_ERROR
public static final int QHVC_NET_GODSEES_TALLK_MODE_HALF_DUPLEX
public static final int QHVC_NET_GODSEES_TALLK_MODE_FULL_DUPLEX
public static final int QHVC_NET_GODSEES_SESSION_SUCCESS
public static final int QHVC_NET_GODSEES_SESSION_BE_USED
public static final int QHVC_NET_GODSEES_SESSION_REJECT
public static final int QHVC_NET_GODSEES_SESSION_TIMEOUT
public static final int QHVC_NET_GODSEES_SESSION_NO_SUPPORT_SPY_RTC
public static final int QHVC_NET_GODSEES_SESSION_UNKNOWN_RES
public static void setOnGodSeesSignallingSendDataListener(QHVCNetGodSees.OnGodSeesSignallingSendDataListener listener)
listener
- public static int receiveGodSeesSignallingData(java.lang.String msg)
pullRemoteDeviceDataStream(java.lang.String, java.lang.String)
函数通知设备验证token成功后,才能调用此接口)msg
- 信令数据QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static void addOnGodSeesSignallingReceiveDataListener(QHVCNetGodSees.OnGodSeesSignallingReceiveDataListener listener)
QHVCNet.QHVC_NET_PARAM_USE_INTERNAL_SIGNALING
为Boolean.TRUE模式下,该方法调用才有效listener
- public static void removeOnGodSeesSignallingReceiveDataListener(QHVCNetGodSees.OnGodSeesSignallingReceiveDataListener listener)
QHVCNet.QHVC_NET_PARAM_USE_INTERNAL_SIGNALING
为Boolean.TRUE模式下,该方法调用才有效listener
- public static int requestGodSeesSignallingSendData(java.lang.String sn, java.lang.String data)
QHVCNet.QHVC_NET_PARAM_USE_INTERNAL_SIGNALING
为Boolean.TRUE模式下,该方法调用才有效sn
- 设备iddata
- 信令数据QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static void setOnGodSeesPullStreamSucceedListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesPullStreamSucceedListener listener)
sessionId
- listener
- public static void setOnGodSeesRecordTimelineListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesRecordTimelineListener listener)
sessionId
- listener
- public static void setOnGodSeesRecordUpdateCurrentTimestampListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesRecordUpdateCurrentTimestampListener listener)
sessionId
- listener
- public static void setOnGodSeesSeekCompleteListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesSeekCompleteListener listener)
与setGodSeesRecordSeek(java.lang.String, long)
调用, 不是一一匹配的。 eg: 调用setGodSeesRecordSeek(java.lang.String, long)
多次,只返回一次QHVCNetGodSees.OnGodSeesSeekCompleteListener.onGodSeesSeekComplete(java.lang.String)
sessionId
- listener
- public static void setOnGodSeesRecordPlaybackRateListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesRecordPlaybackRateListener listener)
与setGodSeesRecordPlayRate(java.lang.String, double)
调用, 不是一一匹配的。 eg: 调用setGodSeesRecordPlayRate(java.lang.String, double)
多次,只返回一次QHVCNetGodSees.OnGodSeesRecordPlaybackRateListener.onGodSeesRecordPlaybackRate(java.lang.String, double)
listener
- public static void setOnGodSeesRecordPlayCompleteListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesRecordPlayCompleteListener listener)
listener
- public static void setOnGodSeesErrorListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesErrorListener listener)
listener
- public static void setOnGodSeesRtcSessionListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesRtcSessionListener listener)
listener
- public static void setOnGodSeesDestroyListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesDestroyListener listener)
listener
- public static void setOnGodSeesUserRequestDeviceStopListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesUserRequestDeviceStopListener listener)
收到此回调QHVCNetGodSees.OnGodSeesUserRequestDeviceStopListener.onUserRequestDeviceStop(java.lang.String, int, java.lang.String)
,app需要主动调用关闭destroyGodSeesSession(java.lang.String)
listener
- public static void setOnGodSeesFrameDataListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesReceiveFrameDataListener listener)
public static void setOnGodSeesVideoStateListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesVideoStateListener listener)
sessionId
- listener
- public static void setOnGodSeesRecordPauseListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesRecordPauseListener listener)
sessionId
- listener
- public static void setOnGodSeesRecordResumeListener(java.lang.String sessionId, QHVCNetGodSees.OnGodSeesRecordResumeListener listener)
sessionId
- listener
- public static boolean startService(Context context, java.lang.String cacheDir, java.lang.String deviceId, java.lang.String businessId, java.util.Map<java.lang.String,java.lang.Object> params, QHVCNetGodSees.OnGodSeesCompletionListener completionListener)
stopService()
配对使用context
- contextcacheDir
- 缓存目录,要保证是一个当前存在且有读写权限的文件夹deviceId
- 设备Id,统计上报会带上,追查问题用businessId
- 业务IDparams
- 可选参数,可传空。参数列表:completionListener
- 初始化的结果回调@Deprecated public static boolean startLocalServer(Context context, java.lang.String cacheDir, java.lang.String deviceId, java.lang.String businessId, java.util.Map<java.lang.String,java.lang.Object> params)
public static void stopService()
@Deprecated public static void stopLocalServer()
stopService()
来替代。public static int setGodSeesNetworkConnectType(int netConnectType)
netConnectType
- 网络连接类型 QHVCNetGodSeesNetConnectType
支持同时设置多个类型 eg QHVC_NET_GODSEES_NETWORK_CONNECT_TYPE_P2P
| QHVC_NET_GODSEES_NETWORK_CONNECT_TYPE_RELAY
| QHVC_NET_GODSEES_NETWORK_CONNECT_TYPE_RELAY
public static int setGodSeesDeviceNetworkAddress(java.lang.String sn, java.lang.String ip, int port)
sn
- 设备唯一标识ip
- ip地址。值为NULL时,删除原来的ip地址port
- 设备侦听端口public static void setGodSeesDevicePrefix(java.lang.String serialNumber, java.lang.String prefix)
public static int preConnectGodSeesDevice(java.lang.String serialNumber, int deviceChannelNumber)
serialNumber
- 设备唯一标识deviceChannelNumber
- 设备管道号,从索引1开始[1, ...]QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static void upDateDevicePrefix(java.lang.String serialNumber, java.lang.String prefix)
public static int setGodSeesDeviceSupportSignalling(java.lang.String serialNumber, int connectType)
serialNumber
- connectType
- public static void handShake(java.lang.String serialNumber)
public static int enableGodSeesMonitorVideoState(boolean isOpen)
isOpen
- true: 监控 false:不监控 默认不监控public static int setGodSeesP2PConnectionSucceedMaxWaitTime(int ms)
public static void preVerifySignatureByProductId(java.lang.String productId, long authTime, int randomNum, java.lang.String productSign, java.lang.String serialNumber, QHVCNetGodSees.OnpreVerifySignatureCompletionListener listener)
productId
- 产品ID,智汇云官网authTime
- 时间戳,业务请求计算productSign时的时间戳randomNum
- 随机数,业务请求计算productSign时的随机数productSign
- 产品签名,鉴定SDK业务的合法性,签名需要由业务服务器下发,密钥在智汇云官网获取listener
- 函数执行完毕回调 QHVCRelaySign.RelaySignErrCode
public static void createGodSeesSessionByProductId(java.lang.String productId, long authTime, int randomNum, java.lang.String productSign, java.lang.String sessionId, java.lang.String userId, java.lang.String serialNumber, int deviceChannelNumber, int sessionType, java.util.Map<java.lang.String,java.lang.Object> options, QHVCNetGodSees.OnCreateSessionCompletionListener<java.lang.Integer> listener)
productId
- 产品ID,在智汇云官网后台申请authTime
- 时间戳,业务请求计算productSign时的时间戳randomNum
- 随机数,业务请求计算productSign时的随机数productSign
- 产品签名,鉴定SDK业务的合法性,签名需要由业务服务器下发,密钥在智汇云官网获取sessionId
- 实例会话IDuserId
- 用户IDserialNumber
- 设备唯一标识deviceChannelNumber
- 设备管道号,从索引1开始[1, ...]sessionType
- 播放类型QHVCNetGodSeesSessionType
options
- 可选参数 CreateGodSeesSessionOptionsKey
listener
- 函数执行完毕回调public static int createGodSeesSession(java.lang.String sessionId, java.lang.String clientId, java.lang.String serviceName, java.lang.String userId, java.lang.String serialNumber, int deviceChannelNumber, java.lang.String serviceSign, int sessionType, java.util.Map<java.lang.String,java.lang.Object> options)
sessionId
- 实例会话IDclientId
- 客户端ID,每个设备需要唯一,用户多端登录时用来区分链接serviceName
- 服务名称,在帝视官网后台申请userId
- 用户IDserialNumber
- 设备唯一标识deviceChannelNumber
- 设备管道号,从索引1开始[1, ...]serviceSign
- 业务签名,签名需要由业务服务器下发,密钥在帝视官网获取sessionType
- 播放类型QHVCNetGodSeesSessionType
options
- 可选参数 CreateGodSeesSessionOptionsKey
QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int destroyGodSeesSession(java.lang.String sessionId)
sessionId
- 实例会话IDQHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int pullRemoteDeviceDataStream(java.lang.String sessionId, java.lang.String token)
sessionId
- 实例会话IDtoken
- 验证信息,字符串长度不能超过63个字符QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static java.lang.String getGodSeesPlayUrl(java.lang.String sessionId)
sessionId
- 实例会话IDpublic static int updateGodSeesVideoStreamSecurityKeys(java.lang.String serialNumber, int[] keys, java.lang.String[] values, int secretIntervalSec)
pullRemoteDeviceDataStream(java.lang.String, java.lang.String)
函数通知设备验证token成功后,才能调用此接口)serialNumber
- 设备唯一标识keys
- 秘钥keys eg: [key0, key1, key2...]values
- 秘钥values eg: [value0, value1, value2...]QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static long decryptGodSeesMediaDataWithSecretKey(int decryptionRules, java.lang.String secretKey, long nativePlayerCtx, long nativePlayerPkt)
decryptionRules
- 解密规则 QHVCNetGodSeesDecryptionRules
secretKey
- 解密秘钥nativePlayerCtx
- native player contextnativePlayerPkt
- native media packetpublic static int getGodSeesRecordTimeline(java.lang.String sessionId, long startTimeMS, long endTimeMS)
pullRemoteDeviceDataStream(java.lang.String, java.lang.String)
函数通知设备验证token成功后,才能调用此接口)sessionId
- 实例会话IDQHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int getRecordMultiTypeTimeline(java.lang.String sessionId, int multi_flag, long startTimeMS, long endTimeMS)
sessionId
- 实例会话IDmulti_flag
- 多种flag类型。0表示获取所有类型startTimeMS
- 希望获取时间轴的起始时间点,默认值是0endTimeMS
- 希望获取时间轴的起始时间点,默认值是-1QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int getRecordMultiTypeDay(java.lang.String sessionId, int multi_flag)
sessionId
- multi_flag
- 多种flag类型。0表示获取所有类型QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int getGodSeesRecordTimelineWithType(java.lang.String sessionId, int recordType, long startTimeMS, long endTimeMS)
pullRemoteDeviceDataStream(java.lang.String, java.lang.String)
函数通知设备验证token成功后,才能调用此接口)
当固件设备上存在多份卡录时,使用此方法。sessionId
- 实例会话IDrecordType
- 卡录类型。保留值:0,客户不能使用。请客户自定义,但需app端和固件端统一。startTimeMS
- 希望获取时间轴的起始时间点endTimeMS
- 希望获取时间轴的结束时间点QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int setGodSeesRecordSeek(java.lang.String sessionId, long timeStampByMS)
pullRemoteDeviceDataStream(java.lang.String, java.lang.String)
函数通知设备验证token成功后,才能调用此接口)sessionId
- 实例会话IDtimeStampByMS
- 指定时间点(单位:毫秒)QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int setGodSeesRecordPause(java.lang.String sessionId)
pullRemoteDeviceDataStream(java.lang.String, java.lang.String)
函数通知设备验证token成功后,才能调用此接口)sessionId
- 实例会话IDQHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int setGodSeesRecordResume(java.lang.String sessionId)
pullRemoteDeviceDataStream(java.lang.String, java.lang.String)
函数通知设备验证token成功后,才能调用此接口)sessionId
- 实例会话IDQHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int setGodSeesRecordPlayRate(java.lang.String sessionId, double rate)
pullRemoteDeviceDataStream(java.lang.String, java.lang.String)
函数通知设备验证token成功后,才能调用此接口)sessionId
- 实例会话IDrate
- 速度倍数QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int coreOnAppStart(java.lang.String bid, java.lang.String pid, java.lang.String ver, java.lang.String os, java.lang.String mid, java.lang.String model, java.lang.String urlCC, java.util.Map<java.lang.String,java.lang.Object> params)
bid
- 业务IDpid
- 平台端IDver
- 端版本os
- 系统类型和版本mid
- 机器idmodel
- 型号urlCC
- 云控地址 格式参考默认地址: http://sdk.live.360.cn/params
- 可选参数public static int setSendAudioParam(java.lang.String sid, int audioCodecType, int sampleRate, int sampleDepth, int audioChannelConfig)
public static int sendAudio(java.lang.String sid, int frameType, long frameData, int frameDataLen, long dts, int nbChannle, int sampleRate)
public static int mediaDataCallbackSwitch(java.lang.String sid, int onoff)
sid
- 实例会话IDonoff
- 是否开始回调媒体数据。默认否QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int extendDeviceIdSwitch(int onoff)
onoff
- 1: 打开 0: 关闭。默认值是1QHVCNetGodSees.QHVCNetGodSeesErrorCode
public static int startTalk(java.lang.String sid, int talkMode)
public static int stopTalk(java.lang.String sid)
public static void getDeviceFileDownloadUrlWithFileKeyByProductId(java.lang.String productId, long authTime, int randomNum, java.lang.String productSign, java.lang.String fileKey, java.lang.String appId, java.lang.String userId, java.lang.String serialNumber, java.lang.String token, long rangeStart, long rangeEnd, int maxReconnectCount, QHVCNetGodSees.onGetDeviceFileDownloadUrlListener downloadUrlListener)
productId
- 产品ID,在智汇云官网后台申请authTime
- 时间戳,业务请求计算productSign时的时间戳randomNum
- 随机数,业务请求计算productSign时的随机数productSign
- 产品签名,鉴定SDK业务的合法性,签名需要由业务服务器下发,密钥在智汇云官网获取fileKey
- 指定设备上的文件的标识符appId
- 应用appId,在帝视官网后台申请userId
- 用户IDserialNumber
- 设备唯一标识token
- 待设备验证的标识,字符串长度不能超过63个字符rangeStart
- 请求文件内容的起始位置,与http的range语义相同rangeEnd
- 请求文件内容的结束位置,与http的range语义相同maxReconnectCount
- 最大重连次数,-1:无限重连。 建议值:3次。downloadUrlListener
- 获取的下载链接结果监听public static int getDeviceFileDownloadUrlWithFileKey(java.lang.String fileKey, java.lang.String clientId, java.lang.String appId, java.lang.String userId, java.lang.String serialNumber, java.lang.String businessSign, java.lang.String token, long rangeStart, long rangeEnd, int maxReconnectCount, QHVCNetGodSees.onGetDeviceFileDownloadUrlListener downloadUrlListener)
fileKey
- 指定设备上的文件的标识符clientId
- 客户端ID,每个设备需要唯一,用户多端登录时用来区分链接appId
- 应用appId,在帝视官网后台申请userId
- 用户IDserialNumber
- 设备唯一标识businessSign
- 业务签名,帝视鉴定SDK业务的合法性,签名需要由业务服务器下发,密钥在帝视官网获取token
- 待设备验证的标识,字符串长度不能超过63个字符rangeStart
- 请求文件内容的起始位置,与http的range语义相同rangeEnd
- 请求文件内容的结束位置,与http的range语义相同maxReconnectCount
- 最大重连次数,-1:无限重连。 建议值:3次。downloadUrlListener
- 获取的下载链接结果监听