1. 程式人生 > >通過JavaScript呼叫AnyChat實現視訊聊天室

通過JavaScript呼叫AnyChat實現視訊聊天室

視訊聊天室

最近公司做專案,需要找一套跨平臺的即時通訊解決方案,希望是Web瀏覽器的,聲音要清楚,視訊要清晰,流量小……但是目 前國內這類方案太少了,目前只找到一個,這是案例:(http://www.anychat.cn/web/);我在CSDN網上看到的,這個案例整合了音視訊編碼、多媒體通訊領域領先的開發技術和豐富的產品經驗而設計網頁 版視訊聊天室,我看了裡面的開發文件說可通過JavaScript簡單地快速地二次開發,下面根據官方示例程式碼,將一些框架提煉出來,結合自己的分析總結,以備其他朋友參考。

一、載入AnyChat for Web SDK庫:

首先anychatevent.js檔案和anychatsdk.js

檔案載入到頁面中

<script language="javascript" type="text/javascript" src="./javascript/anychatsdk.js" charset="GB2312"></script>
<script language="javascript" type="text/javascript" src="./javascript/anychatevent.js" charset="GB2312"></script>

anychatevent.js 為事件回撥

anychatsdk.js 為常量定義和方法定義

使用者只需對網頁進行佈局,佈局完成後對SDK中方法進行呼叫,輸入引數獲得結果進行操作即可。

AnyChat SDK的所有功能函式都有個返回值,使用者可根據常量定義獲得函式返回值的意義,從而進行相應的操作。

二、初始化SDK

網頁載入完成後進行初始化外掛。

BRAC_InitSDK(apilevel);    // 初始化SDK,返回出錯程式碼

根據系統返回錯誤程式碼,與常量進行對比,獲得結果

var GV_ERR_SUCCESS   = 0;    // 成功
var GV_ERR_PLUGINNOINSTALL = 1010000;  // 外掛沒有安裝
var GV_ERR_PLUGINOLDVERSION = 1010001;  // 外掛版本太低

三、登入系統

初始化成功則顯示登入介面

 

初始化失敗則顯示提示層

在登入介面 設定 中進行設定伺服器地址和埠號。

點選 登入 按鈕

BRAC_Connect(lpServerAddr, dwPort);    // 連線伺服器
BRAC_Login(lpUserName, lpPassword, dwParam); // 登入系統

四、進入大廳

登入成功進入主介面

登入成功後系統會觸發回撥函式 

OnAnyChatLoginSystem(dwUserId, errorcode);    // 登入系統回撥函式

 使用者可在回撥函式中作出相應動作,例如

DisplayLoadingDiv(false);
AddLog("OnAnyChatLoginSystem(userid=" + dwUserId + ", errorcode=" + errorcode + ")", LOG_TYPE_EVENT);
ShowHallDiv(true);

顯示主介面,隱藏登入介面和載入等待層

五、進入房間

使用者可以通過方法進入指定房間

BRAC_EnterRoom(dwRoomid, lpRoomPass, dwParam);    // 進入房間

1.開啟本地視訊音訊

進入房間後系統觸發回撥函式

OnAnyChatEnterRoom(dwRoomId, errorcode);    // 進入房間回撥函式

在該回調函式中應作以下動作

BRAC_UserCameraControl(mSelfUserId, 1);  // 開啟本地視訊
BRAC_UserSpeakControl(mSelfUserId, 1);   // 開啟本地語音

ShowNotifyMessage("Welcome use AnyChat, successfully enter the room:" + dwRoomId, NOTIFY_TYPE_SYSTEM);
 // 設定本地視訊顯示位置
 BRAC_SetVideoPos(mSelfUserId, GetID("AnyChatLocalVideoDiv"), "ANYCHAT_VIDEO_LOCAL");
 // 設定遠端視訊顯示位置(沒有關聯到使用者,只是佔位置)
BRAC_SetVideoPos(0, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_REMOTE");
 

2.傳送接收文字資訊

房間介面右下角為文字資訊框,傳送文字資訊和接收文字資訊將在這裡顯示。

傳送文字資訊需呼叫方法

BRAC_SendTextMessage(dwUserId, bSecret, lpMsgBuf);    // 傳送文字資訊

接收到使用者發來資訊系統觸發函式

OnAnyChatTextMessage(dwFromUserId, dwToUserId, bSecret, lpMsgBuf, dwLen);    // 接收文字資訊

3.獲取線上使用者 

使用者第一次進入房間時會觸發函式

OnAnyChatRoomOnlineUser(dwUserCount, dwRoomId)

該方法只會在使用者進入房間時觸發一次,在該方法中呼叫函式,獲得線上使用者

BRAC_GetOnlineUser();    // 獲取當前房間線上使用者列表

之後線上使用者的變更系統會通過回撥函式 進行通知,bEnterRoom = 1 代表有新使用者進入,否則為使用者退出房間

OnAnyChatUserAtRoom(dwUserId, bEnterRoom);    // 使用者進入(離開)房間

4.開啟遠端視訊

進入房間時遠端視訊為關閉狀態,開啟需要在左上角單擊線上使用者,呼叫以下函式

BRAC_UserCameraControl(userid, 1);   // 請求對方視訊
BRAC_UserSpeakControl(userid, 1);   // 請求對方語音
// 設定遠端視訊顯示位置
BRAC_SetVideoPos(userid, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_REMOTE");

5.退出房間

BRAC_LeaveRoom();    // 退出房間

6.退出系統

BRAC_Logout();    // 登出系統

7.其他功能

此外 AnyChat SDK 還提供了其他的各種功能函式。例如 查詢版本號、對使用者相關狀態的查詢、對裝置各項引數進行設定等等...

相關推薦

通過JavaScript呼叫AnyChat實現視訊聊天

視訊聊天室 最近公司做專案,需要找一套跨平臺的即時通訊解決方案,希望是Web瀏覽器的,聲音要清楚,視訊要清晰,流量小……但是目 前國內這類方案太少了,目前只找到一個,這是案例:(http://www.anychat.cn/web/);我在CSDN網上看到的,這個案例整合了

WebRTC實現網頁版多人視訊聊天

因為產品中要加入網頁中網路會議的功能,這幾天都在倒騰 WebRTC,現在分享下工作成果。 話說 WebRTC Real Time Communication 簡稱 RTC,是谷歌若干年前收購的一項技術,後來把這項技術應用到瀏覽器中並開源出來,而且搞了一套標準提交給W3C,稱為WebRTC,官方

實現一個簡單的視訊聊天(原始碼)

       在 《》一文釋出後,很多朋友建議我也實現一個視訊聊天室給他們參考一下,其實,視訊聊天室與語音聊天室的原理是差不多的,由於加入了攝像頭、視訊的處理,邏輯會繁雜一些,本文就實現一個簡單的多人視訊聊天系統,讓多個人可以進入同一個房間進行語音視訊溝通。先看看3個人進行視訊聊天的執行效果截圖:     

Java通過cmd呼叫FFmpeg實現視訊檔案的分段切割

由於公司業務需要,就用java寫了這麼個小程式,其實挺簡單的,但是也算是弄了半天,所以就發表出來吧~ VideoFileOperate .java package xyz.leo; import java.io.*; import java.ut

Python實現文字聊天

跟著 tro 通過 客戶端 發送 cnblogs ima 命令 圖形 你是否想過用所學的Python開發一個圖形界面的聊天室程序啊? 像這樣的: 如果你想開發這樣一個有點懷舊風格的聊天程序,那麽可以接著看; 要開發這個聊天程序,你需要具備以下知識點: asyncore

Python實現web聊天

支持 put all rem message one utf cti 訪問 使用Python模塊中的select模塊實現web聊天室功能select模塊Python中的select模塊專註於I/O多路復用,提供了select poll epoll三個方法(其中後兩個在L

實現簡易聊天(一)

ima log body .com 麻煩 導入 定義 右鍵 正常 預備工作: (1)讀取文件的時候可能會遇到多個文件一起傳,可以用線程池。 (2)發送不同類型的請求時,如發送的是聊天信息,發送的是文件,發送的是好友上線請求等,但對於接受者來說都是字節流無法分別,這就需要我們

PHP簡單實現WebSocket(聊天)

在PHP中,開發者需要考慮的東西比較多,從socket的連線、建立、繫結、監聽等都需要開發者自己去操作完成,對於初學者來說,難度方面也挺大的,所以本文的思路如下: 1、socket協議的簡介 2、介紹client與server之間的連線原理 3、PHP中建立socket的過程講解 4

js+html+css實現本地聊天

歡迎訪問我的個人部落格:http://mrzyf.club. 程式碼完成效果: 話不多說,直接上程式碼—— css程式碼: <style type="text/css">          &nb

用 Netty 實現 WebSocket 聊天功能

WebSocket 是 H5 的一種技術,目前有很多語言都有相應的實現,之前有用 WebSocket 實現過 Java 和安卓,IOS 通訊的專案。想來也該分享一下,看過不少專案要實現頁面資料實時更新的操作,有用輪詢有用 Socket 連結的,當然也不排除有很多前端其他技術可以實現,WebSocke

Socket.IO實現簡單聊天

Socket.IO介紹 官方文件 https://socket.io/docs/ Socket.io是一個跨瀏覽器支援WebSocket的實時通訊的JS。它不僅簡化了介面,使得操作更容易,而且對於那些不支援WebSocket的瀏覽器,會自動降為Ajax連線,最大限度地保證了相容性。它

html5 websocket + node.js 實現網頁聊天

1 client:    socket.io    server:   node.js +  express  + socket.io   一個簡單的聊天室  demo,沒有註冊,內建了一些測試使用者

視訊聊天,視訊會議

    Ahead AAC Decoder library documentation Version 1.0.2.1, Menno Bakker ([email protected])   1&nbs

百度t7 課程, websocket 實現簡單聊天

最簡單的聊天室,我寫了一個小時, 寫了10 分鐘,除錯50分鐘 因為 我是小菜鳥,不過凡事都有過程 index.html <!DOCTYPE html> <html lang="en"> <head> <meta c

Android 實現視訊聊天1對1功能

Android實現視訊聊天很難? 不不不,其實很簡單,使用聲網第三方sdk簡單上手 先看效果,我這裡用的是模擬器測試 大家可以看到兩個模擬器介面都會顯示對應內容。右上角是自己,左邊是對方。 專

GTK+實現linux聊天程式碼詳解-clientr端

檢視原文請點選此超連結 提供給識字的人學習。 #include <gtk/gtk.h> // 標頭檔案 #include <string.h> #include <stdio.h> #include <netinet/in.h>

GTK+實現linux聊天程式碼詳解-server端

檢視原文請點選此連結  我相信只要認識字就能學會。 #include <signal.h> #include <stdio.h> #include <syslog.h> #include <stdlib.h> #in

基於flask框架,使用websocket實現一對一聊天功能

info app lan 提示 function _id 數據 sca 響應 後端代碼: from flask import Flask,request,render_template from geventwebsocket.handler import WebSock

基於UDP的網路程式設計實現簡單聊天

import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner; pu

使用WebRTC搭建前端視訊聊天——信令篇

如果需要搭建例項的話可以參照SkyRTC-demo:github地址 其中使用了兩個庫:SkyRTC(github地址)和SkyRTC-client(github地址) 這兩個庫和demo都是我寫的,如果有bug或是錯誤歡迎指出,我會盡力更正 前面的話 這篇文章講述了WebRTC中所涉及的信令交換以及