聲網(wǎng)(Agora)視頻通話-小程序

聲網(wǎng)(Agora)

  • 聲網(wǎng) Agora 為開發(fā)者提供實時音視頻 API型酥,只需集成 Agora SDK,即可快速在應用內(nèi)構建多種實時互動場景焦蘑。

微信小程序

  • 官方地址:https://docs.agora.io/cn/Video/miniapp_video?platform=%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F
  • 首先在聲網(wǎng)創(chuàng)建賬號,進去后創(chuàng)建項目,appid是指項目的appid




    以上因為瀏覽器原因自動翻譯頁面,可能會看到不太一樣,如果使用安全的食品通話,開啟上圖中的app證書,打開信令調試開關

  • 微信小程序接入視頻通話,需要聲網(wǎng)給開通小程序的權限
    (1) 給聲網(wǎng)郵箱發(fā)送郵件,注明開通微信小程序接入權限,并給發(fā)送appid(appid是聲網(wǎng)注冊是創(chuàng)建項目的appid)
郵箱賬號: sales@agora.io

(2)給聲網(wǎng)客服打電話開通,聲網(wǎng)電話:400 6326626
注:給官網(wǎng)郵箱發(fā)郵件,沒人回復我,后來還是打客服開通的,客服態(tài)度很好哦

const AgoraMiniappSDK = require('../../lib/Agora_Miniapp_SDK_for_WeChat.js');
  • 小程序接入代碼片段
// 推流上下文
    this.ctx = wx.createLivePusherContext("livePush");
//  拉流上下文
    this.liveP = wx.createLivePlayerContext('livePlayer');

    var that = this;
    let client = new AgoraMiniappSDK.Client();
    that.setData({
      client: client
    });
    // 初始化
    client.init("這是你的appid", function () {
      // 初始化成功
      console.log("初始化成功");
      client.join("token 如果沒有寫null", "房間號", "這里是用戶uid", function (uid) {
        // 加入成功
        console.log("加入成功User " + uid + " join channel successfully");
        // 發(fā)布本地音頻流并獲取推流 url 地址
        client.publish(function (res) {
          // 發(fā)布成功
          console.log("發(fā)布成功pushPath" + res);
          that.setData({
            pushPath: res
          })
          // 監(jiān)聽
          client.on('error', function (err) {
            console.log("Got error msg:", err.reason);
            if (err.reason === 'DYNAMIC_KEY_TIMEOUT') {
              client.renewChannelKey(that.data.fangjianhao, function () {
                console.log("Renew channel key successfully");
              }, function (err) {
                console.log("Renew channel key failed: ", err);
              });
            }
          });
          // 監(jiān)聽遠程視頻添加
          client.on('stream-added', function (evt) {
            client.subscribe(evt.uid, function (res) {
              console.log("訂閱視頻流成功playUrl" + res);
              that.setData({
                playUrl: res
              });
            }, function (err) {
              console.log("訂閱視頻流錯誤", err);
            });
          });

          client.on('update-url', function (evt) {
            console.log("視頻播放", evt);
          });

          client.on('stream-removed', function (evt) {
            console.log("視頻停止播放");
          });

          client.on('video-rotation', function (evt) {
            console.log(evt.uid + " leaved from this channel");
          });


        }, function (err) {
          // 發(fā)布失敗
          console.log("發(fā)布失敗" + err);
        });
      }, function (err) {
        // 加入失敗
        console.log("加入失敗", err);
      });
    }, function (err) {
      //初始化失敗
      console.log("初始化失敗", err);
    });

注: 不同appid不能通話
官網(wǎng)api:https://docs.agora.io/cn/Video/API%20Reference/wechat/index.html

  • 官網(wǎng)小程序demo地址
https://github.com/AgoraIO/Agora-Miniapp-Tutorial
  • 實現(xiàn)web和小程序互通注意
    (1) 下載官方web端的示例demo,注意訪問地址是https或是本地localhost
    (2) 如果不添加一下代碼,web端不影響,小程序端只有聲音,并沒有視頻
    (3) 以上本地調試應該沒有問題,如果不成功打開小程序端的"打開調試",正式版還需要配置聲網(wǎng)的域名(如下所示):
https://miniapp.agoraio.cn
https://miniapp-1.agoraio.cn
https://miniapp-2.agoraio.cn
https://miniapp-3.agoraio.cn
https://miniapp-4.agoraio.cn
https://uni-webcollector.agora.io
wss://miniapp.agoraio.cn
示例代碼:
  client = AgoraRTC.createClient({mode: 'live'});
修改后:
  client = AgoraRTC.createClient({mode: 'live',codec: "h264"});

注明

  • 此代碼可能與官方示例代碼不太一樣,以官方代碼為準
  • 希望各位批評指正,小編會努力改正的
  • 微信組件live-player和live-pusher踩坑
    (1) 對live-pusher進行start, stop,resume等操作時盯拱,會停止所有正在播放的live-player的聲音
    (2) 一種是避免在live-player播放后操作live-pusher。比如進頁面直接開啟live-pusher例嘱,然后不再操作狡逢。官方DEMO就是使用這種方案。
    第二種拼卵,則是每次操作live-pusher后奢浑,都重新調用live-player的play操作(感覺需要短暫的延遲調用)。不過這會引起正在播放的live-player音視頻的短暫中斷腋腮,體驗不是太好雀彼,所以業(yè)務許可的話,第一種更推薦即寡。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末徊哑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子聪富,更是在濱河造成了極大的恐慌莺丑,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件墩蔓,死亡現(xiàn)場離奇詭異梢莽,居然都是意外死亡,警方通過查閱死者的電腦和手機奸披,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門昏名,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人源内,你說我怎么就攤上這事葡粒。” “怎么了膜钓?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵嗽交,是天一觀的道長。 經(jīng)常有香客問我颂斜,道長夫壁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任沃疮,我火速辦了婚禮盒让,結果婚禮上梅肤,老公的妹妹穿的比我還像新娘。我一直安慰自己邑茄,他們只是感情好姨蝴,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肺缕,像睡著了一般左医。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上同木,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天浮梢,我揣著相機與錄音,去河邊找鬼彤路。 笑死秕硝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的洲尊。 我是一名探鬼主播远豺,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坞嘀!你這毒婦竟也來了憋飞?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤姆吭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唁盏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體内狸,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年厘擂,在試婚紗的時候發(fā)現(xiàn)自己被綠了昆淡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡刽严,死狀恐怖昂灵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舞萄,我是刑警寧澤眨补,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站倒脓,受9級特大地震影響撑螺,放射性物質發(fā)生泄漏。R本人自食惡果不足惜崎弃,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一甘晤、第九天 我趴在偏房一處隱蔽的房頂上張望含潘。 院中可真熱鬧,春花似錦线婚、人聲如沸遏弱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漱逸。三九已至,卻和暖如春居砖,著一層夾襖步出監(jiān)牢的瞬間虹脯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工奏候, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留循集,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓蔗草,卻偏偏與公主長得像咒彤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子咒精,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容