亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

小程序?qū)崿F(xiàn)簡單語音聊天的示例代碼

 更新時間:2020年07月24日 09:45:14   作者:加菲貓的狗  
這篇文章主要介紹了小程序?qū)崿F(xiàn)簡單語音聊天的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

框架相關(guān)

Demo采用Mpvue框架,后端的WebSocket采用Node.js,文件服務(wù)器直接使用的微信小程序的云開發(fā)的存儲。

儲備知識

  • 微信小程序錄音控制器:recorderManager。
  • 微信小程序音頻控制器:innerAudioContext。
  • 微信小程序WebSocket。

Node.js端WebScoket實現(xiàn)

// 基于WS插件
 
// 引入ws插件
var WebSocketServer = require("ws").Server;
// 實例化WebSocket
var wss = new WebSocketServer({ port: 9090 });
// 初始化客戶端數(shù)組
var clients = [];
 
// 建立鏈接監(jiān)聽
wss.on('connection', function (ws) {
 clients.push(ws);
 ws.on("message", function (message) {
  clients.forEach(function (ws1) {
   if (ws1 !== ws) {
    ws1.send(message)
   }
  })
 })
})
 
// 建立鏈接關(guān)閉監(jiān)聽
ws.on("close", function (message) {
 clients = clients.filter(function (ws1) {
  return ws1 !== ws
 })
})

小程序端實現(xiàn)

html

<div>
 <button @click="palyAudio(value)" v-for="(value,index) in chatContent" :key="index">)))))</button>
 <button class="botom-button" @touchstart="startRecord" @touchend="stopRecord">輸入語音</button>
</div>

js

export default {
 data() {
  return {
   // 存儲聊天記錄
   chatContent: [],
   // 錄音控制器
   recorderManager: null,
   // 音頻控制器
   innerAudioContext: null
  };
 },
 methods: {
  // 按下按鈕開始錄音
  startRecord() {
   this.recorderManager.start({
    format: "mp3"
   });
  },
  // 松開按鈕停止錄音
  stopRecord() {
   this.recorderManager.stop();
  },
  // 播放錄音
  palyAudio(value) {
   this.innerAudioContext.src = value;
   this.innerAudioContext.play();
  }
 },
 created() {
  this.recorderManager = wx.getRecorderManager();
  this.innerAudioContext = wx.createInnerAudioContext();
  // 監(jiān)聽錄音開始
  this.recorderManager.onStart(res => {
   console.log("recordStart");
  });
  // 監(jiān)聽錄音結(jié)束
  this.recorderManager.onStop(res => {
   const audioName = new Date().getTime() + ".mp3";
   // 上傳錄音文件
   wx.cloud.uploadFile({
    cloudPath: audioName,
    filePath: res.tempFilePath,
    success: upload => {
     this.chatContent.push(upload.fileID);
     // 通過websocket傳遞錄音連接
     wx.sendSocketMessage({
      data: upload.fileID
     });
    }
   });
  });
  // 建立websocket鏈接
  wx.connectSocket({
   url: "ws://yoursiteandeport",
   success: res => {
    console.log("success", res);
   },
   fail: err => {
    console.log("error", err);
   }
  });
  // websocket消息監(jiān)聽 
  wx.onSocketMessage(data => {
   console.log(data);
   this.chatContent.push(data.data);
  });
 }
};

結(jié)論

  • 主要通過WebSocket完成實時通訊
  • 通過微信小程序提供的API完成語音的錄入和輸出
  • 通過文件服務(wù)器上傳語音文件

到此這篇關(guān)于小程序?qū)崿F(xiàn)簡單語音聊天的示例代碼的文章就介紹到這了,更多相關(guān)小程序 語音聊天內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript 七大技巧(二)

    JavaScript 七大技巧(二)

    我寫JavaScript代碼已經(jīng)很久了,都記不起是什么年代開始的了。本文給大家分享javascript七大技巧(二),對javascript技巧相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • 淺析JavaScript中var that=this

    淺析JavaScript中var that=this

    this是Javascript語言的一個關(guān)鍵字。它代表函數(shù)運行時,自動生成的一個內(nèi)部對象,只能在函數(shù)內(nèi)部使用。接下來通過本文給大家分享JavaScript中var that=this所代表的意思,需要的朋友參考下吧
    2017-02-02
  • JavaScript中幾種時間格式之間的簡單轉(zhuǎn)換

    JavaScript中幾種時間格式之間的簡單轉(zhuǎn)換

    近期在練習(xí)或?qū)戫椖繒r經(jīng)常會遇到時間格式的轉(zhuǎn)換問題,今天我就來總結(jié)一下,這篇文章主要給大家介紹了關(guān)于JavaScript中幾種時間格式之間的簡單轉(zhuǎn)換,需要的朋友可以參考下
    2024-01-01
  • createObjectURL方法實現(xiàn)本地圖片預(yù)覽

    createObjectURL方法實現(xiàn)本地圖片預(yù)覽

    這篇文章主要為大家詳細介紹了createObjectURL方法實現(xiàn)本地圖片預(yù)覽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 微信小程序 JS動態(tài)修改樣式的實現(xiàn)方法

    微信小程序 JS動態(tài)修改樣式的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于微信小程序JS動態(tài)修改樣式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • require簡單實現(xiàn)單頁應(yīng)用程序(SPA)

    require簡單實現(xiàn)單頁應(yīng)用程序(SPA)

    下面小編就為大家?guī)硪黄猺equire簡單實現(xiàn)單頁應(yīng)用程序(SPA)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • Javascript Request獲取請求參數(shù)如何實現(xiàn)

    Javascript Request獲取請求參數(shù)如何實現(xiàn)

    使用Javascript Request獲取參數(shù)的時候總是提示出錯,本文為此問題提供詳細的解決方案,需要了解的朋友可以參考下
    2012-11-11
  • 擴展Bootstrap Tooltip插件使其可交互的方法

    擴展Bootstrap Tooltip插件使其可交互的方法

    這篇文章主要介紹了擴展Bootstrap Tooltip插件使其可交互的方法,結(jié)合實例形式分析了bootstrap擴展tooltip插件的原理與具體操作技巧,需要的朋友可以參考下
    2016-11-11
  • javascript中一些奇葩的日期換算方法總結(jié)

    javascript中一些奇葩的日期換算方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于javascript中的一些奇葩的日期換算方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • 全面解析Bootstrap中tooltip、popover的使用方法

    全面解析Bootstrap中tooltip、popover的使用方法

    這篇文章主要為大家詳細解析了Bootstrap中tooltip、popover的使用方法,了解提示框、彈出框的實現(xiàn)原理,感興趣的朋友可以參考一下
    2016-06-06

最新評論