작은 프로그램이 간단한 음성 채팅을 실현하는 예시 코드
Demo는 Mpvue 프레임워크를 사용하고 백엔드의 WebSocket은 Node를 사용합니다.js, 파일 서버에서 직접 사용하는 위챗 프로그램의 클라우드 개발 저장소입니다.
비축 지식
// WS
// ws
var WebSocketServer = require("ws").Server;
// WebSocket
var wss = new WebSocketServer({ port: 9090 });
//
var clients = [];
//
wss.on('connection', function (ws) {
clients.push(ws);
ws.on("message", function (message) {
clients.forEach(function (ws1) {
if (ws1 !== ws) {
ws1.send(message)
}
})
})
})
//
ws.on("close", function (message) {
clients = clients.filter(function (ws1) {
return ws1 !== ws
})
})
애플릿 구현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();
//
this.recorderManager.onStart(res => {
console.log("recordStart");
});
//
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
wx.onSocketMessage(data => {
console.log(data);
this.chatContent.push(data.data);
});
}
};
결론이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
위챗 프로그램 개발에서 직면한 몇 가지 사소한 문제를 깊이 있게 분석하다로컬 그림이 표시되지 않으면 개발 도구가 실행되는 것은 문제없지만, 실제 디버깅은 표시되지 않습니다 자세히 관찰한 결과 경로는 문제없다. 문제는 사진 이름이 중국어가 될 수 없다는 것이다. 이를 자모+숫자로 바꾸면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.