调用API流程的样例:

// 创建中间件的插件实例:
var Node = pgNewJSNode(12344);  // 传入的参数是Session ID,必须为小于32767的整数

// 创建事件回调接口对象
var pgLiveUI = {
    OnEvent:function(sAct, sData, sRender) {
        // 处理事件的代码
    }
}

// 创建类对象
var liveObj = new pgLibLiveMultiRender(Node , pgLiveUI); 

// 调用实例初始化函数
liveObj.Initialize();

// 连接采集端
liveObj.Connect(sCapID);

// 调用其他业务功能的函数,根据实际需要调用具体的API。
liveObj.VideoStart()
liveObj.VideoStop()

liveObj.AudioStart()
liveObj.AudioStop()

liveObj.MessageSend()

// 断开连接
liveObj.Disconnect(sCapID);

// 清理实例。
// 如果音频、视频已经打开,必须先关闭,然后再执行清理实例的操作。
liveObj.Clean();

// 清理插件实例。
pgDeleteJSNode(Node);

OnEvent回调函数实现样例(伪码)

var pgLiveUI = {
    OnEvent:function(sAct, sData, sPeer) {
        if (sAct == "VideoStatus") {
            // 视频播放状态上报
        }
        else if (sAct == "Notify") {
            // 接收到采集端组播的通知
        }
        else if (sAct == "RenderJoin") {
            // 播放端加入
        }
        else if (sAct == "RenderLeave") {
            // 播放端离开
        }
        else if (sAct == "Message") {
            // 接收到采集端发送的消息
        }
        else if (sAct == "Login") {
            // 已经登录
        }
        else if (sAct == "Logout") {
            // 已经注销
        }
        else if (sAct == "Connect") {
            // 已经连接采集端
        }
        else if (sAct == "Disconnect") {
            // 已经断开采集端
        }
        else if (sAct == "Reject") {
            // 采集端主动拒绝连接
        }
        else if (sAct == "Offline") {
            // 采集端不在线
        }
        else if (sAct == "VideoCamera") {
            // 抓拍照片文返回
            // sData参数的格式为保存照片文件的路径。
        }
        else if (sAct ==  "VideoFrameStat") {
            // 视频帧统计信息上报。
            // sData参数的格式为:”total=总帧数&drop=丢弃的帧数”
        }
        else if (sAct ==  "RecordStopVideo") {
            // 停止录制视频。
            // sData参数的格式为:”videoid=视频流ID&error=错误码&path=录制的媒体文件路径”
        }
        else if (sAct ==  "RecordStopAudio") {
            // 停止录制音频。
            // sData参数的格式为:”audioid=视频流ID&error=错误码&path=录制的媒体文件路径”
        }
    },

    OnOutString:function(sStr) {
        // 输出调试信息
    }
};

参数:

sCapID = account,                           //采集端的P2P ID
iVideoID = 0,                               //视频流ID。有效值:0, 1, 2, 3, 4, ...,SingleMode时传0
iAudioID = 0,                               // 音频流ID。有效值:0, 1, 2, 3, 4, ...,SingleMode时传0sParam = '(OutRotate){0}(OutMirror){1}',    //OutMirror: 播放端镜像翻转图像。0为不翻转,1为左右翻转,2为上下翻转,默认为0。OutRotate: 播放端增加旋转视频图像的角度。有效值:0,90,180,270,默认为0
sAudio = '(MuteInput){0}(MuteOutput){0}',   //sAudio: 音频参数。MuteInput,MuteOutput,1为启用静音,0为取消静音(默认)
sViewDiv = 'video-grid';                    //显示视频图像的DIV标签的id。
作者:郭祥西  创建时间:2024-04-10 17:34
最后编辑:郭祥西  更新时间:2024-11-07 15:18