ps:以下为 h5 + jquery 的代码,看一眼就知道vue怎么写了,如果实在不会直接丢给 ai 重构成 vue 即可
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
<script type="text/javascript" src="./test_files/jquery-1.7.2.min.js"></script>
</head>
<body>
<div>
<button id="startConnect">开始采集</button>
<button id="stopConnect">结束采集</button>
<button id="intercomBegin">开始对讲</button>
<button id="intercomEnd">关闭对讲</button>
</div>
<script type="text/javascript">
var devid = 1979;
var talktype = 0;
var port = 22101;
url = "ws://socket链接地址"
$(function () {
var url2 = "http://国标对话的接口(可以忽略)";
var addVoiceProxy2 = function (devid, port, pause) {
$.ajax({
type: "GET",
async: false,
url: url2,
data: {
},
dataType: "json",
success: function (data) {
console.log(data);
}
});
}
//addVoiceProxy2(38,22101,1);
})
/*
* WebSocket
*/
var useWebSocket = function () {
window.ws1 = new WebSocket(window.url);
window.ws1.binaryType = 'blob'; //二进制类型,传输的是 ArrayBuffer 类型的数据
window.ws1.onopen = function () {
console.log('onopen');
if (window.ws1.readyState == 1) {
//ws进入连接状态,则发送数据
//window.startConnect();
}
};
window.ws1.onmessage = function (msg) {
if (window.printLog) {
log("recv" + msg.data + "\n");
console.info(msg)
}
}
window.ws1.onerror = function (err) {
console.info(err)
}
if (window.ws1 && window.ws1.readyState != 1) {
window.ws1 = new WebSocket(window.url);
}
window.ws1.binaryType = 'blob'; //传输的是 ArrayBuffer 类型的数据
window.ws1.onopen = function () {
console.log('onopen');
if (window.ws1.readyState == 1) {
//ws进入连接状态,则每隔500毫秒发送一包数据
window.startConnect();
}
};
window.ws1.onmessage = function (msg) {
if (window.printLog) {
log("recv" + msg.data + "\n");
console.info(msg)
}
}
window.ws1.onerror = function (err) {
console.info(err)
}
}
//是否开启gb28181-2016开关
/**
* 开启GB28181-2016对讲开关
* devid 设备数据库中的唯一递增的编号
* port 媒体服务端口
* pause 为1表示开始对讲,为0停止对讲
* */
var addVoiceProxy = function (devid, port, pause) {
$.ajax({
type: "GET",
url: "/?r=mediaKit/AddVoiceProxy&devid=" + devid + "&index=0&mediaPort=" + port + "&debug=true&type=1" + "&pause=" + pause,
data: {
},
dataType: "json",
success: function (data) {
console.log(data);
}
});
}
//录音对象
var Recorder = function (stream) {
var sampleBits = 16; //输出采样数位 8, 16
var sampleRate = 8000; //输出采样率
if (typeof audioContext == 'undefined') {
audioContext = new AudioContext();
audioInput = audioContext.createMediaStreamSource(stream); //输入信号 media>filter>destination
var bufferSize = 4096; // 每个块的大小是4k
var inputChannelCount = 2;// 输入为双声道
var outputChannelCount = 2; // 输出为双声道
scriptProcessorNode = audioContext.createScriptProcessor(bufferSize, inputChannelCount, outputChannelCount);//缓冲区大小,以样本帧为单位如果不传,或者参数为0,则取当前环境最合适的缓冲区大小, 取值为2的幂次方的一个常数
// Create a biquadfilter
biquadFilter