当前位置: 首页 > news >正文

我想做个网站怎么做建设网站之前都需要准备什么东西

我想做个网站怎么做,建设网站之前都需要准备什么东西,湖南住房和城乡建设网站,慈溪app开发公司1.项目方案 前端采用webrtc创建音频上下文#xff0c;后创建音频源输入和音频处理器#xff0c;连接音频输入与处理器#xff0c;处理器再连接到音频输出#xff08;扬声器#xff09;#xff0c;再通过事件获取音频数据#xff0c;把音频数据转换成字节数据通过webscok…1.项目方案 前端采用webrtc创建音频上下文后创建音频源输入和音频处理器连接音频输入与处理器处理器再连接到音频输出扬声器再通过事件获取音频数据把音频数据转换成字节数据通过webscoket发送给后端。 注意 1.前端使用的创建音频源api createScriptProcessor  onaudioprocess  已经开始废弃使用但是浏览器依然适配。 2.因为前端使用websocket实时传输录音数据后端开发需要多线程接受处理数据给每个数据包提供index坐标然后处理后保存再通过单线程发送可以降低延迟 2.前端代码 // AudioManager.js export default class AudioManager {/*** 构造函数* param {string} url - WebSocket服务器的地址* param {function} onMessageCallback - 当WebSocket接收到消息时的回调函数*/constructor(url, onMessageCallback) {this.url url; // WebSocket服务器的完整URLthis.websocket null; // WebSocket连接实例this.audioContext null; // 音频上下文this.audioStream null; // 流媒体对象this.audioProcessor null; // 音频处理器this.onMessageCallback onMessageCallback; // WebSocket消息的回调函数}/*** 初始化WebSocket连接并设置消息监听器*/initWs() {console.log(this.url,;this.url);// 创建WebSocket实例this.websocket new WebSocket(this.url);// 设置WebSocket接收消息时的回调函数this.websocket.onmessage (e) {if (this.onMessageCallback) {// 调用通过构造函数传入的回调函数处理接收到的消息this.onMessageCallback(e.data);}};// 请求用户的麦克风权限并开始处理音频流this.queryHttp();}/*** 停止录音并关闭所有资源*/stopRecording() {// 关闭所有音频轨道if (this.audioStream) {this.audioStream.getTracks().forEach((track) track.stop());}// 断开音频处理器的连接if (this.audioProcessor) {this.audioProcessor.disconnect();}// 关闭音频上下文if (this.audioContext) {this.audioContext.close();}// 关闭WebSocket连接if (this.websocket) {this.websocket.close();}}/*** 请求麦克风资源并在成功后处理音频流*/queryHttp() {navigator.mediaDevices.getUserMedia({audio: {echoCancellation: true, // 开启回声消除noiseSuppression: true, // 开启噪声抑制autoGainControl: true, // 开启自动增益控制},}).then((stream) {// 处理成功获取的音频流this.handleStream(stream);}).catch((error) {// 处理获取音频流失败的情况console.error(Error accessing microphone:, error);});}/*** 处理音频流连接音频输入和处理器并设置音频处理事件* param {MediaStream} stream - 从麦克风获取的音频流*/handleStream(stream) {this.audioContext new AudioContext({sampleRate: 16000, // 设置采样率latencyHint: interactive, // 延迟模式为交互式channels: 1, // 单声道frameRate: 60, // 帧率sampleType: int16, // 采样类型numberOfOutputs: 1, // 输出数量});// 创建音频源输入let audioInput this.audioContext.createMediaStreamSource(stream);// 创建音频处理器this.audioProcessor this.audioContext.createScriptProcessor(4096, 1, 1);// 设置音频处理事件this.audioProcessor.onaudioprocess (event) {// 获取音频数据const inputData event.inputBuffer.getChannelData(0);// 转换音频数据为字节数据const byteData this.convertToByteData(inputData);// 通过WebSocket发送字节数据this.websocket.send(byteData);};// 连接音频输入与处理器处理器再连接到音频输出扬声器audioInput.connect(this.audioProcessor);this.audioProcessor.connect(this.audioContext.destination);// 保存音频流引用this.audioStream stream;}/*** 将浮点数组的音频数据转换为字节数据* param {Float32Array} inputData - 浮点数组格式的原始音频数据* return {Uint8Array} 字节数据*/convertToByteData(inputData) {// 创建Int16Array由于原始的音频数据是Float32Array类型需要转换const intData new Int16Array(inputData.map((item) item * 32767));// 创建Uint8Array来保存字节数据const byteData new Uint8Array(intData.length * 2);// 将Int16Array的数据转换为字节数据并填充到Uint8ArrayintData.forEach((value, index) {byteData[index * 2] value 0xff; // 存储低位字节byteData[index * 2 1] (value 8) 0xff; // 存储高位字节});return byteData;} }/*使用方法 templateaudio styledisplay: none refaudio controlscontrols autoplaysource :srcaudioUrl typeaudio/wav //audio /templatescript import AudioManager from ./AudioManager.js;export default {data() {return {audioManager: null,};},methods: {handleWsMessage(data) {let message JSON.parse(data);this.$refs.audio.src message.url; },startRecording() {this.audioManager new AudioManager(your-server-url,this.handleWsMessage // 回调函数用于接受通话后获取的信息这里我用于播放接受的音频);this.audioManager.initWs();},}, }; /script */
http://www.hkea.cn/news/14558947/

相关文章:

  • 如何提高一个网站网站建设设计制作培训
  • 南京领动做网站怎么样做网站公司郑州
  • 北京市网站备案查询北京中国建设银行招聘信息网站
  • 舆情信息网站经典广告案例
  • 做投资类网站服务器佛山网站建设怎么办
  • 网站设计郑州张家港网站建设模板
  • 做网站的公司主要工作wordpress和hugo
  • flash+xml网站模板百度指数的主要功能有
  • 企业网站一般用什么程序做哪个网站做马代路线好
  • 全国网站开发公司网站开发流程步骤
  • 哪些网站可以查企业信息wordpress评论滑动
  • 宁波网站建设lonoo哪个网站建站好500平台
  • 个人网站毕业设计论文免费企业黄页
  • 网站推广策划方案dedecms与wordpress
  • 评网网站建设甘肃谷歌seo
  • 湖北城市建设职业技术学院官方网站网站没有icp备案怎么访问
  • 招聘网站的建设vantage wordpress
  • 网站建设的一般步骤有必要代理网页的网址
  • 网站开发的项目开发网站开发估价
  • 如何在服务器上做网站沈阳百度推广优化
  • 网站建设现状调查研究网app开发
  • 芜湖经济开发区网站网站源码上传教程
  • 广西建设领域证书查询官方网站营销型网站网站
  • 各大网站搜索引擎要学好网站开发要会什么
  • 木门行业做网站有什么好处长春手机网站
  • 桐乡网站开发经营管理系统
  • 北京网站备案核验单长沙网站制作价
  • 网站 白名单专业网站建设案例
  • 外贸公司论坛seo网站设计
  • 佛山外贸建站电商公司简介