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

网易做网站吗网站的关键词怎么选择

网易做网站吗,网站的关键词怎么选择,焦作网站制作-焦作网站建设-焦作网络公司-维科网络,财务公司业务范围如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; 首先在页面中给两个按钮&#xff0c;分别是“开始录音”&#xff0c;“结束录音”。以及录音成功后生成一个下载语音的链接。 1. 先看页面展示 <template><div><button click"startRecording…

如果可以实现记得点赞分享,谢谢老铁~

首先在页面中给两个按钮,分别是“开始录音”,“结束录音”。以及录音成功后生成一个下载语音的链接。

1. 先看页面展示
<template><div><button @click="startRecording" :disabled="isRecording">Start Recording</button><button @click="stopRecording" :disabled="!isRecording">Stop Recording</button><a v-if="downloadLink" :href="downloadLink" download="recording.pcm">Download Recording</a></div>
</template>
2. 看vue3.0的代码实现
<script setup>
import { ref, onBeforeUnmount } from 'vue';const isRecording = ref(false);
const downloadLink = ref('');
let audioContext = null;
let processor = null;
let socket = null;
let mediaStream = null;
let audioChunks = [];
let silenceTimeout = null;
const silenceDelay = 2000; // 停止录音的延迟时间(毫秒)
const desiredSampleRate = 16000; // 期望的采样率为16kHzconst startRecording = async () => {try {mediaStream = await navigator.mediaDevices.getUserMedia({ audio: {sampleRate: desiredSampleRate,sampleSize: 16,channelCount: 1,} });audioContext = new (window.AudioContext || window.webkitAudioContext)({sampleRate: desiredSampleRate});const source = audioContext.createMediaStreamSource(mediaStream);processor = audioContext.createScriptProcessor(4096, 1, 1);source.connect(processor);processor.connect(audioContext.destination);socket = new WebSocket('ws://yourserver.com');socket.binaryType = 'arraybuffer';// 接收 WebSocket 消息socket.onmessage = (event) => {const receivedData = event.data;console.log('Received data from server:', receivedData);// 这里可以处理接收到的数据,例如显示在 UI 上};processor.onaudioprocess = processAudio;isRecording.value = true;audioChunks = []; // 清空之前的音频数据} catch (error) {console.error('Error accessing media devices.', error);}
};const stopRecording = async () => {if (processor) {processor.disconnect();}if (mediaStream) {mediaStream.getTracks().forEach(track => track.stop());}if (audioContext && audioContext.state !== 'closed') {await audioContext.close();audioContext = null}if (socket) {socket.close();}isRecording.value = false;createDownloadLink();
};const processAudio = (event) => {const inputBuffer = event.inputBuffer;const outputBuffer = new Float32Array(inputBuffer.length);inputBuffer.copyFromChannel(outputBuffer, 0);const pcmData = convertFloat32ToPCM(outputBuffer);// 检查音量是否为静音const isSilent = outputBuffer.every(sample => Math.abs(sample) < 0.01);if (!isSilent) {clearTimeout(silenceTimeout);silenceTimeout = setTimeout(() => stopRecording(), silenceDelay);}if (socket && socket.readyState === WebSocket.OPEN) {socket.send(pcmData);}audioChunks.push(pcmData);
};const convertFloat32ToPCM = (input) => {const buffer = new ArrayBuffer(input.length * 2);const output = new DataView(buffer);for (let i = 0; i < input.length; i++) {const s = Math.max(-1, Math.min(1, input[i]));output.setInt16(i * 2, s < 0 ? s * 0x8000 : s * 0x7FFF, true);}return buffer;
};const createDownloadLink = () => {const blob = new Blob(audioChunks, { type: 'application/octet-stream' });downloadLink.value = URL.createObjectURL(blob);
};onBeforeUnmount(() => {stopRecording();
});
</script>
解释

audioChunks 数组:
存储录音过程中的 PCM 数据块。

processAudio 方法:
将 PCM 数据块添加到 audioChunks 数组中。

stopRecording 方法:
停止录音,并调用 createDownloadLink 方法生成下载链接。

createDownloadLink 方法:
将存储的音频数据块创建为一个 Blob 对象,并生成一个下载链接。

downloadLink 变量:
存储生成的下载链接,供用户下载录音文件。

注意事项

确保WebSocket服务器可以处理PCM数据。
处理音频数据时,注意性能问题,避免阻塞主线程。
Web Audio API和WebSocket在不同浏览器上的实现可能会有所不同,确保在目标浏览器上测试。

OK,收工!如果可以实现记得点赞分享,谢谢老铁~

http://www.yayakq.cn/news/224474/

相关文章:

  • 经营网站需要什么资质网页设计哪里好
  • 网站建设实训报告要求网站如何做关键词seo优化
  • 100个免费设计网站简单网站页面
  • 网站以个人名义备案嘉兴企业网站推广
  • iis怎么配置网站建站之星网站模版商城
  • 如何建立自己的网络销售seo优化招商
  • 深圳网站建设吗网站建设的相关书籍
  • 绍兴建设公司网站jsp网站源码 怎么用
  • 网站开发的相关技能有哪些文山做女主播的在哪个网站
  • 网站qq安全认证甘肃网站排名公司
  • 建设网站需要花费域名建设好了怎么在建设网站
  • 盘锦建设资质网站有人做几个蝎子养殖门户网站
  • 丹江口网站开发wordpress 营销 主题
  • 重庆做网站制作的公司上海娱乐场所恢复营业最新通知
  • 有网站源码 怎么做网站网站制作方案相信乐云seo
  • 南头手机公司网站建设网站建站建设价格
  • 茂名市住房和城乡建设局网站电商系统架构图
  • 网站一般做几个关键词信阳住房和城乡建设厅网站
  • 临海建设银行网站云南网红
  • 宝塔织梦网站建设合肥市建设工程造价信息网
  • 遵义建设厅网站首页google搜索首页
  • 郑州高端定制网站建设公司彩票网站开发 合法
  • 网站建设材料汇报合肥设计工作室
  • 企业网站怎么做推广租点点电脑租赁公司
  • 用php做的网站软件宁波seo哪家好
  • 做网站的服务器配置asp一个空间建多个网站系统
  • wordpress制作的网站设计软件手机版免费
  • 东莞麻涌网站建设wordpress 站点
  • 网站备案 厦门手表官网
  • html制作一个网站代码如何查询网站的点击量