摘要:版本發版說明更新時,在這個文檔末尾加上版本發版說明廢棄中的回調,將其精確通知到對應的回調事件中增加回調事件,涉及到的更改如下,示例代碼已添加統一報錯的提示格式,從返回的數據的拿錯誤提示信息錯誤信息版本發版說明增加是否在屏幕共享的增加
版本-v1128
發版說明:api更新時,在這個文檔末尾加上release
版本-v1204發版說明:
1、廢棄client.initInnerCallBack中的videoCloseCB回調,將其精確通知到對應的回調事件中(增加closeVideoSuccess回調事件),涉及到的更改如下,示例代碼已添加
client.videoPickUp
client.videoInviteAgent
client.callbackToVisitor
client.videoInviteCurrentVisitor
client.videoInviteVisitor
2、統一SDK報錯的提示格式,從返回的數據的error.msg拿錯誤提示信息
error: function(data) { if(data.error) { var msg = data.error.msg || "" } console.log(msg, "錯誤信息") }版本-v1211
發版說明:
1、增加是否在屏幕共享的API - isShareState
2、增加是否在三方視頻中的API - isMultipleVideo
發版說明:
1、client.initInnerCallBack 中添加了 visitorStreamOffline 事件,當會議中有成員視頻流停止超過3s 則推送此事件
發版說明:
1、增加client.videoPickUp中的visitorDisconnect回調,提示音視頻接通后訪客端引起的掛斷,詳見示例代碼
2、增加client.multipleVideoPickUp中的kefuCloseVideoSuccess回調,提示音視頻接通后坐席或訪客端掛斷導致的會議結束(非被邀請的三方坐席)
baseWsUrl 必填 基礎連接的ws,wss://lccp-ex.easemob.com:1040為wss連接,ws://127.0.0.1:1040為ws連接
ssoTo 必填 客服的主地址
videoBarVisible 是否開啟客服內部的音視頻控制條
success 初始化成功的回調
error 初始化出錯的回調
ssoReady 單點登錄頁面準備就緒
kefuReady 進入客服頁面了
kefuWSClose 客服內部的ws通道出錯
1.2、client.initInnerCallBack方法說明chatCloseCB ==客服內部IM會話關閉的回調通知==
videoCloseCB ==客服內部音視頻關閉的回調通知==
visitorStreamOffline ==會議成員視頻流離線超過3s==
1.3 初始化示例window.onload = function() { var client; function initIMClient(){ var HXPlugin = window.HXPlugin = 0; var wssrc = location.protocol == "https:" ? "wss://lccp-ex.easemob.com:1040" : "ws://127.0.0.1:1040"; client = new IMClient({ baseWsUrl: wssrc, videoBarVisible: true, ssoTo: "https://kefu.wecvideotest.pingan.com.cn/mo/agent/webapp/chat", success: function(data){ console.log("成功連接", data); HXPlugin = 0; this.linkStatus = true; }, error: function(error){ this.linkStatus = false; this.ready = false; console.log(error); HXPlugin = 0; }, ssoReady: function(){ console.log("進入單點登錄頁面了,可以登錄了 123+"); }, kefuReady: function(){ console.log("進入客服系統了,可以退出了 123-"); }, kefuWSClose: function(){ console.log("kefu系統的ws斷開"); } }); client.linkStatus = false; client.ready = false; client.detactExeReadyInterval = null; /** * 接收exe內部操作的回調 */ client.initInnerCallBack({ chatCloseCB: function(data){ console.log(data); }, visitorStreamOffline: function(data){ console.log(data) } }); return client; } window.initIMClient = initIMClient; }2、具體API說明 2.1、 exe窗口相關 client.startLogin 插件登錄
minimize 是否在登錄的時候最小化窗口
data 傳入登錄的參數 url必傳
success 登錄成功的回調通知
error 登錄失敗的回調通知
client.startLogin({ minimize: true, data: { url: "https://pingan-test-video.easemob.com/doLogin?name=23160006&pwd=76160006&returnTo=", }, success: function (data) { console.log(data, "登錄成功回調"); }, error: function (err) { // 登錄超時邏輯處理 if (err && err.code == -1) { // 此時登錄超時 console.log("登錄超時") } } })setWindowSize 調整exe窗口寬高
width 寬度
height 高度
client.setWindowSize({ width: "300", height: "400" });minimize exe窗口最小化
client.minimize()startup windows環境下拉起exe插件
client.startup({ clientUrl: "pocprotocol://" })restore exe窗口還原
client.restore()quit exe窗口退出
client.quit()2.2、IM文本會話相關方法 pickUpSession 接起IM會話
session_id 會話id,必填
success IM接起成功
error IM接起失敗
client.pickUpSession({ session_id: serviceSessionId, success: function (data) { console.log("IM接起成功!", data); }, error: function (data) { console.log("IM接起失??!", data); } });chatClose 掛斷當前IM會話
client.chatClose()2.3、 音視頻相關方法 videoPickUp 主坐席接起音視頻
session_id 必填 會話id
success 音視頻接起會議創建成功的回調
visitorDisconnect 音視頻接通后訪客端引起的掛斷
timeoutDisconnect 超時未接的回調
error 音視頻接起失敗的回調
client.videoPickUp({ session_id: serviceSessionId, success: function (data) { console.log("video接起成功", data); }, timeoutDisconnect: function(data) { console.log("訪客超時未接聽", data) }, visitorDisconnect: function(data) { console.log("音視頻接通后訪客端引起的掛斷", data) }, kefuCloseVideoSuccess: function(data) { console.log("客服掛斷音視頻", data) }, error: function(error) { console.log(error, "videoPickUp err") } });multipleVideoPickUp ==被邀請==的三方坐席接起音視頻
acceptSuccess 三方坐席接受當前視頻成功
exitSuccess 三方坐席離開當前視頻成功
error 三方坐席加入音視頻出錯
client.multipleVideoPickUp({ acceptSuccess: function (data) { console.log("三方坐席接受當前視頻成功", data); }, exitSuccess: function (data) { console.log("三方坐席離開當前視頻成功", data); }, kefuCloseVideoSuccess: function(data) { console.log("客服掛斷音視頻", data) }, error: function(error) { console.log("三方坐席加入音視頻出錯", error) } });videoInviteAgent 邀請三方坐席
agentName 必填 被邀請的三方坐席的name
inviteSuccess 三方坐席視頻邀請發送成功
acceptSuccess 三方坐席接受視頻成功
exitSuccess 三方坐席退出成功
error 邀請三方坐席失敗
client.videoInviteAgent({ agentName: "XXXX", inviteSuccess: function (data) { console.log("三方坐席視頻邀請發送成功", data); }, acceptSuccess: function (data) { console.log("三方坐席接受視頻成功", data) }, exitSuccess: function (data) { console.log("三方坐席退出成功", data) }, kefuCloseVideoSuccess: function(data) { console.log("客服掛斷音視頻", data) }, error: function(data) { console.log(data, "邀請坐席失敗") } })callbackToVisitor 外呼訪客
visitorName 必填 訪客name
inviteSuccess 外呼-訪客邀請發送成功
acceptSuccess 外呼-訪客接受邀請
visitorRefuse 外呼-訪客拒接邀請
visitorDisconnect 外呼-訪客掛斷
videoBusyMark 外呼-訪客忙線
timeoutDisconnect 外呼-訪客超時未接聽
kefuCloseVideoSuccess 外呼-客服掛斷音視頻
error 外呼-訪客 出錯,錯誤信息
client.callbackToVisitor({ visitorName: "XXXX", startVideo: true, inviteSuccess: function (data) { console.log(data, "外呼-訪客邀請發送成功") }, acceptSuccess: function (data) { console.log("外呼-訪客接受邀請", data) }, visitorRefuse: function (data) { console.log("外呼-訪客拒接邀請", data) }, visitorDisconnect: function (data) { console.log("外呼-訪客掛斷", data) }, videoBusyMark: function (data) { console.log("外呼-訪客忙線", data) }, timeoutDisconnect: function (data) { console.log("外呼-訪客超時未接聽", data) }, kefuCloseVideoSuccess: function(data) { console.log("客服掛斷音視頻", data) }, error: function (error) { console.log("外呼-訪客 出錯", error) /*error: { code: "SDK_11", msg: "當前訪客正在進行會話,無法外呼" } error: { code: "SDK_08", msg: "查詢id出錯,請檢查訪客信息是否正確" }*/ } });videoInviteCurrentVisitor 邀請當前訪客音視頻
回調同外呼訪客,參上
client.videoInviteCurrentVisitor({ inviteSuccess: function (data) { console.log(data, "邀請當前-訪客邀請發送成功") }, acceptSuccess: function (data) { console.log("邀請當前-訪客接受邀請", data) }, visitorRefuse: function (data) { console.log("邀請當前-訪客拒接邀請", data) }, visitorDisconnect: function (data) { console.log("邀請當前-訪客掛斷", data) }, videoBusyMark: function (data) { console.log("邀請當前-訪客忙線", data) }, timeoutDisconnect: function (data) { console.log("邀請當前-訪客超時未接聽", data) }, kefuCloseVideoSuccess: function(data) { console.log("客服掛斷音視頻", data) }, error: function (data) { console.log("邀請當前-訪客 出錯", data) } });videoInviteVisitor 邀請三方訪客
回調同外呼訪客,參上
client.videoInviteVisitor({ visitorName: "XXXX", inviteSuccess: function (data) { console.log(data, "邀請三方-訪客邀請發送成功") }, acceptSuccess: function (data) { console.log("邀請三方-訪客接受邀請", data) }, visitorRefuse: function (data) { console.log("邀請三方-訪客拒接邀請", data) }, visitorDisconnect: function (data) { console.log("邀請三方-訪客掛斷", data) }, videoBusyMark: function (data) { console.log("邀請三方-訪客忙線", data) }, timeoutDisconnect: function (data) { console.log("邀請三方-訪客超時未接聽", data) }, kefuCloseVideoSuccess: function(data) { console.log("客服掛斷音視頻", data) }, error: function (data) { console.log("邀請三方-訪客 出錯", data) /*error: { code: "SDK_11", msg: "當前訪客正在進行會話,無法外呼" } error: { code: "SDK_08", msg: "查詢id出錯,請檢查訪客信息是否正確" }*/ }});videoDisconnect 掛斷音視頻
client.videoDisconnect()2.4、截圖&拍照
// 拍照 client.takePhoto({ success: function (data) { console.log(data, "拍照數據") }, error: function(error) { console.log(error, "拍照失敗") // 拍照不可用會返回如下消息 {"mark":"takePhoto","subMark":"error","error":{"type":"snapShotDisabled","msg":"snapShotDisabled"}} } }); // 截圖 client.snapshot({ success: function (data) { console.log(data, "截圖數據") }, error: function(error) { console.log(error, "截圖失敗") } });2.5、 共享 inviteShare 邀請訪客共享
open 訪客共享屏幕打開了
close 訪客共享屏幕關閉了
error 邀請訪客共享屏幕失敗
client.inviteShare({ open: function (data) { console.log("共享屏幕邀請成功", data) }, close: function (data) { console.log("訪客共享屏幕關閉了", data) }, error: function (error) { console.log("邀請訪客共享屏幕失敗") } });2.6、 其他 sessionCount 獲取當前正在進行的會話的數量
client.sessionCount({ success: function(data) { console.log(data.payload.sessionCount) } })sessionState 獲取當前正在進行的會話的詳情
client.sessionState({ success: function(data) { console.log(data) } })isMultipleVideo
參數說明
success中的data.data為布爾值,true代表當前正在三方視頻中,false代表當前不在三方視頻中
client.isMultipleVideo({ success: function(data) { console.log(data.data, "當前是否正在三方視頻中") } })isShareState
參數說明
success中的data.data為布爾值,true代表當前正在共享中,false代表當前不在共享中
client.isShareState({ success: function(data) { console.log(data.data, "當前是否在共享中") } })release說明
api的md文檔提供 - 11.28
版本-v190307發版說明: 1、整合brower端和app端sdk,采用狀態機管理應用工作狀態, 2、修改部分api的調用方式狀態機
const state = { currentState: "000000", //未遷入 notLogin: "000000", //忙 visitorInvite_timeout: "001001", agentInvite_timeout: "001002", //閑 callVisitor_visitorRefuse:"002001", callVisitor_Timeout:"002002", callVisitor_busy:"002003", callVisitor_error:"002004", callVisitor_agentCloseVideo_notAnswer:"002005", callCurrentVisitor_visitorRefuse:"002006", callCurrentVisitor_timeout:"002007", callCurrentVisitor_busy:"002008", callCurrentVisitor_error:"002009", callCurrentVisitor_agentCloseVideo_notAnswer:"002010", visitorInvite_error: "002011", agentInvite_error: "002012", //外呼中 callVisitor_inviteSendSuccess:"003001", callCurrentVisitor_inviteSendSuccess:"003002", //來電中 //話后處理 inviteThirdVisitor_masterAgentCloseVideo: "005001", inviteThirdAgent_masterAgentCloseVideo: "005002", callVisitor_visitorDisconnect:"005003", callVisitor_agentCloseVideo_answered:"005004", callCurrentVisitor_visitorDisconnect:"005005", callCurrentVisitor_agentCloseVideo_answered:"005006", visitorInvite_visitorDisconnect: "005007", visitorInvite_agentCloseVideo: "005008", agentInvite_visitorDisconnect: "005009", agentInvite_agentCloseVideo: "0050010", //兩方通話中 inviteThirdVisitor_visitorRefuse:"006001", inviteThirdVisitor_Timeout:"006002", inviteThirdVisitor_busy:"006003", inviteThirdVisitor_error:"006004", inviteThirdVisitor_visitorDisconnect:"006005", //inviteThirdAgent_visitorRefuse:"006006", //inviteThirdAgent_Timeout:"006007", //inviteThirdAgent_busy:"006008", inviteThirdAgent_error:"006009", inviteThirdAgent_visitorDisconnect:"006010", callVisitor_VisitorAcceptSuccess:"006011", callCurrentVisitor_VisitorAcceptSuccess:"006012", visitorInvite_Success: "006013", agentInvite_Success: "006014", //邀請中 inviteThirdVisitor_inviteSendSuccess:"007001", inviteThirdAgent_inviteSendSuccess:"007002", //三方通話中 inviteThirdVisitor_success:"008001", inviteThirdAgent_success:"008002", }
000000未簽入 001000忙 001001 訪客邀請-超時 001002 坐席邀請-超時 002000閑 002001 外呼訪客-訪客拒絕 002002 外呼訪客-訪客超時 002003 外呼訪客-訪客忙 002004 外呼訪客-訪客錯誤 002005 外呼訪客-坐席掛斷(未接通) 002006 外呼當前訪客-訪客拒絕 002007 外呼當前訪客-訪客超時 002008 外呼當前訪客-訪客忙 002009 外呼當前訪客-訪客錯誤 0020010 外呼當前訪客-坐席掛斷(未接通) 002011 訪客邀請-錯誤 002012 坐席邀請-錯誤 003000外呼中 003001 外呼訪客-邀請發送成功 003002 外呼當前訪客-邀請發送成功 004000來電中 005000話后處理 005001 邀請三方訪客-主坐席掛斷 005002 邀請三方坐席-主坐席掛斷 005003 外呼訪客-訪客掛斷 005004 外呼訪客-坐席掛斷(接通后) 005005 外呼當前訪客-訪客掛斷 005006 外呼當前訪客-坐席掛斷(接通后) 005007 訪客邀請-訪客掛斷 005008 訪客邀請-坐席掛斷 005009 坐席邀請-訪客掛斷 005010 坐席邀請-坐席掛斷 006000兩方通話中 006001 邀請三方訪客-訪客拒絕 006002 邀請三方訪客-訪客忙 006003 邀請三方訪客-訪客超時 006004 邀請三方訪客-訪客錯誤 006005 邀請三方訪客-訪客掛斷
006006 邀請三方坐席-坐席拒絕
006007 邀請三方坐席-坐席忙
006008 邀請三方坐席-坐席超時
006009 邀請三方坐席-坐席錯誤 006010 邀請三方坐席-坐席掛斷 006011 外呼訪客-訪客接受視頻成功 006012 外呼當前訪客-訪客接受視頻成功 006013 訪客邀請-成功 006014 坐席邀請-成功 007000邀請中 007001 邀請三方訪客-邀請發送成功 007002 邀請三方坐席-邀請發送成功 008000三方通話中 008001 邀請三方訪客-訪客接受視頻成功 008002 邀請三方坐席-坐席接受視頻成功相關api調用修改
1、相關api采用統一調用參數格式 2、參數為回調函數, para1: obj, para2: func(state, [payload])videoInviteVisitor 邀請三方訪客
client.videoInviteVisitor({ visitorName: "XXXX", },function(state, payload){ if (state = 006001){ console.log("邀請三方訪客-訪客拒接邀請") } else if (state = 006002){ console.log("邀請三方訪客-訪客忙線") } else if (state = 006003){ console.log("邀請三方訪客-訪客超時") } else if (state = 006004){ console.log("邀請三方訪客-訪客錯誤") } else if (state = 006005){ console.log("邀請三方訪客-訪客掛斷") } else if (state = 007001){ console.log("邀請三方訪客-邀請發送成功") } else if (state = 008001){ console.log("邀請三方訪客-訪客接受視頻成功") } else if (state = 005001){ console.log("邀請三方訪客-主坐席掛斷") } });videoInviteAgent 邀請三方坐席
client.videoInviteAgent({ agentName: "XXXX" },function(state, payload){ if (state = 006006){ console.log("邀請三方訪客-訪客拒接邀請") } else if (state = 006007){ console.log("邀請三方訪客-訪客忙線") } else if (state = 006008){ console.log("邀請三方訪客-訪客超時") } else if (state = 006009){ console.log("邀請三方訪客-訪客錯誤") } else if (state = 0060010){ console.log("邀請三方訪客-訪客掛斷") } else if (state = 007002){ console.log("邀請三方訪客-邀請發送成功") } else if (state = 008002){ console.log("邀請三方訪客-訪客接受視頻成功") } else if (state = 005002){ console.log("邀請三方訪客-主坐席掛斷") } }); *注意:原始api只有邀請 錯誤、發送成功、接收成功、第三方坐席掛斷(exitSuccess而非visitorDisconnect)住坐席掛斷callbackToVisitor 外呼訪客
- visitorName **必填** 訪客name - inviteSuccess 外呼-訪客邀請發送成功 - acceptSuccess 外呼-訪客接受邀請 - visitorRefuse 外呼-訪客拒接邀請 - visitorDisconnect 外呼-訪客掛斷 - videoBusyMark 外呼-訪客忙線 - timeoutDisconnect 外呼-訪客超時未接聽 - kefuCloseVideoSuccess 外呼-客服掛斷音視頻 - error 外呼-訪客 出錯,錯誤信息
client.callbackToVisitor({ visitorName: "XXXX", startVideo: true, },function(state, payload){ if (state = 002001){ console.log("外呼訪客-訪客拒接邀請") } else if (state = 002002){ console.log("外呼訪客-訪客超時") } else if (state = 002003){ console.log("外呼訪客-訪客忙線") } else if (state = 002004){ console.log("外呼訪客-訪客錯誤") } else if (state = 002005){ console.log("外呼訪客-坐席掛斷(未接通)") } else if (state = 003001){ console.log("外呼訪客-邀請發送成功") } else if (state = 006011){ console.log("外呼訪客-訪客接受視頻成功") } else if (state = 005003){ console.log("外呼訪客-訪客掛斷") } else if (state = 005004){ console.log("外呼訪客-坐席掛斷(已接通)") } } });videoInviteCurrentVisitor 邀請當前訪客音視頻
client.videoInviteCurrentVisitor(null, function(state, payload){ if (state = 002006){ console.log("外呼當前訪客-訪客拒接邀請") } else if (state = 002007){ console.log("外呼當前訪客-訪客超時") } else if (state = 002008){ console.log("外呼當前訪客-訪客忙線") } else if (state = 002009){ console.log("外呼當前訪客-訪客錯誤") } else if (state = 0020010){ console.log("外呼當前訪客-坐席掛斷(未接通)") } else if (state = 003002){ console.log("外呼當前訪客-邀請發送成功") } else if (state = 006012){ console.log("外呼當前訪客-訪客接受視頻成功") } else if (state = 005005){ console.log("外呼當前訪客-訪客掛斷") } else if (state = 005006){ console.log("外呼當前訪客-坐席掛斷(已接通)") } });videoPickUp 主坐席接起音視頻
session_id 必填 會話id
success 音視頻接起會議創建成功的回調
visitorDisconnect 音視頻接通后訪客端引起的掛斷
timeoutDisconnect 超時未接的回調
error 音視頻接起失敗的回調
client.videoPickUp({ session_id: serviceSessionId, }, function(state, payload){ if (state = 001001){ console.log(‘訪客邀請-訪客超時未接聽") } else if (state = 002011){ console.log("訪客邀請-錯誤") } else if (state = 006013){ console.log("訪客邀請-成功") } else if (state = 005007){ console.log("訪客邀請-訪客掛斷(接通后)") } else if (state = 005008){ console.log("訪客邀請-坐席掛斷(接通后)") } });multipleVideoPickUp ==被邀請==的三方坐席接起音視頻
acceptSuccess 三方坐席接受當前視頻成功
exitSuccess 三方坐席離開當前視頻成功
error 三方坐席加入音視頻出錯
client.multipleVideoPickUp(null, function(state, payload){ if (state = 001002){ console.log("坐席邀請-訪客超時未接聽") } else if (state = 002011){ console.log("坐席邀請-錯誤") }else if (state = 006014){ console.log("坐席邀請邀請-成功") } else if (state = 005009){ console.log("坐席邀請-訪客掛斷(接通后)") } else if (state = 005010){ console.log("坐席邀請-坐席掛斷(接通后)") } });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102482.html
摘要:采訪了騰訊云音視頻業務終端研發團隊負責人常青,針對小程序音視頻能力技術升級場景支持政策審核以及未來演進趨勢進行了詳細的探討。 LiveVideoStack采訪了騰訊云音視頻業務終端研發團隊負責人常青,針對小程序音視頻能力技術升級、場景支持、政策審核以及未來演進趨勢進行了詳細的探討。 文 / 常青策劃 / LiveVideoStack LiveVideoStack:常青你好,能否向Liv...
摘要:今天的話題分四部分,第一個是小程序音視頻能拿來做什么,第二部分是將其內部是怎么做到的第三就是講騰訊視頻云的音視頻技術的一些技術細節第四個是介紹一下微信上做音視頻的應用的一些審核問題以及應對方案。 本文由云+社區發表 作者:常青 騰訊視頻云是做什么的?騰訊視頻云既不做數據庫,也不做存儲,也不做網絡,我們只做音視頻服務,也就是直播、點播、視頻通話、這類面向B類客戶的音視頻PAAS業務。 今...
摘要:目前半島局勢緊張,朝鮮已進行了六次核試驗,被廣泛認為已經擁有了核彈頭。另外朝鮮的導彈技術今年以來快速突破,成功試射了射程可覆蓋美國本土的洲際彈道導彈。這個版的內容傳到互聯網上后,迅速刷屏,引起紛紛議論。 SplderApi2 Node-SplderApi2 第二版 基于Node 的網絡爬蟲 API接口 包括前端開發日報、kugou音樂、前端top框架排行、妹紙福利、搞笑視頻、段子笑話、...
摘要:衢州作為全國第一批雪亮工程試點城市,提前三年超標完成衢州市縣鄉村各級機關的雪亮工程的建設。衢州雪亮工程建設以城市大腦的技術能力為基礎,打造衢州城市大腦,利用人工智能及大數據技術,增強城市綜合服務及治理能力。2017年12月18-19日,2018年雪亮工程重點支持城市(區)項目建設現場培訓班和浙江省雪亮工程建設現場會在衢州召開。衢州雪亮工程領導小組向來自數十個地市的專家、領導介紹了工程建設階段...
閱讀 1660·2021-09-28 09:35
閱讀 1131·2019-08-30 15:54
閱讀 1656·2019-08-30 15:44
閱讀 3363·2019-08-30 14:09
閱讀 488·2019-08-29 14:05
閱讀 2661·2019-08-28 17:53
閱讀 1978·2019-08-26 13:41
閱讀 1710·2019-08-26 13:26