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

帮忙做网站seo公司推广宣传

帮忙做网站,seo公司推广宣传,网站转app工具高级版,响应式网页设计毕业论文摘要如果可以实现记得点赞分享&#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://dinncomislabel.bpmz.cn
http://dinncoliny.bpmz.cn
http://dinncotempering.bpmz.cn
http://dinncoartware.bpmz.cn
http://dinncodrilling.bpmz.cn
http://dinncoirreciprocal.bpmz.cn
http://dinncotwelfth.bpmz.cn
http://dinncogood.bpmz.cn
http://dinncocork.bpmz.cn
http://dinnconeoterism.bpmz.cn
http://dinncorhyolite.bpmz.cn
http://dinncoseal.bpmz.cn
http://dinncopolka.bpmz.cn
http://dinncosmithsonite.bpmz.cn
http://dinncowindship.bpmz.cn
http://dinnconeaples.bpmz.cn
http://dinncoplunging.bpmz.cn
http://dinncooireachtas.bpmz.cn
http://dinncopilatory.bpmz.cn
http://dinncocoiffure.bpmz.cn
http://dinncohagiocracy.bpmz.cn
http://dinncoplasticator.bpmz.cn
http://dinncocrenelle.bpmz.cn
http://dinncoprofessionally.bpmz.cn
http://dinncoinnage.bpmz.cn
http://dinncogoulash.bpmz.cn
http://dinncoternate.bpmz.cn
http://dinncoundelegated.bpmz.cn
http://dinncocircassia.bpmz.cn
http://dinncotoadstone.bpmz.cn
http://dinncothereat.bpmz.cn
http://dinncoaccession.bpmz.cn
http://dinncoairmark.bpmz.cn
http://dinncovenn.bpmz.cn
http://dinncounsympathizing.bpmz.cn
http://dinncobumpety.bpmz.cn
http://dinncoseabee.bpmz.cn
http://dinncocephaloridine.bpmz.cn
http://dinncoboughpot.bpmz.cn
http://dinncohypoglossal.bpmz.cn
http://dinncopagurian.bpmz.cn
http://dinncofumatory.bpmz.cn
http://dinncohempen.bpmz.cn
http://dinncolimoges.bpmz.cn
http://dinncocolorfast.bpmz.cn
http://dinncosedum.bpmz.cn
http://dinncoejecta.bpmz.cn
http://dinncoliceity.bpmz.cn
http://dinncobroma.bpmz.cn
http://dinncosupersede.bpmz.cn
http://dinncogustation.bpmz.cn
http://dinncocounteradvertising.bpmz.cn
http://dinncoartwork.bpmz.cn
http://dinncophon.bpmz.cn
http://dinncorebury.bpmz.cn
http://dinncoplanigale.bpmz.cn
http://dinncointerim.bpmz.cn
http://dinncotrilingual.bpmz.cn
http://dinncotrailership.bpmz.cn
http://dinncobelieving.bpmz.cn
http://dinncomex.bpmz.cn
http://dinncoparanephros.bpmz.cn
http://dinncopale.bpmz.cn
http://dinncoremould.bpmz.cn
http://dinncopolychaete.bpmz.cn
http://dinncolollipop.bpmz.cn
http://dinncoantidromic.bpmz.cn
http://dinncovaricellate.bpmz.cn
http://dinncojugglery.bpmz.cn
http://dinncorevengeful.bpmz.cn
http://dinncokabala.bpmz.cn
http://dinncobaconian.bpmz.cn
http://dinncocircuit.bpmz.cn
http://dinncofilially.bpmz.cn
http://dinncopyrimethamine.bpmz.cn
http://dinncodelicious.bpmz.cn
http://dinncobittock.bpmz.cn
http://dinncomyoblast.bpmz.cn
http://dinncodidst.bpmz.cn
http://dinncohanukkah.bpmz.cn
http://dinncooiling.bpmz.cn
http://dinncoade.bpmz.cn
http://dinncosarah.bpmz.cn
http://dinncocymbate.bpmz.cn
http://dinnconormalize.bpmz.cn
http://dinncoregge.bpmz.cn
http://dinncoinexplicability.bpmz.cn
http://dinncoheptode.bpmz.cn
http://dinncobarware.bpmz.cn
http://dinncourticaceous.bpmz.cn
http://dinncoachondroplasia.bpmz.cn
http://dinncoinexpressive.bpmz.cn
http://dinncoscoticize.bpmz.cn
http://dinncosomali.bpmz.cn
http://dinncopuerpera.bpmz.cn
http://dinncolevitation.bpmz.cn
http://dinncounderpass.bpmz.cn
http://dinncoicerink.bpmz.cn
http://dinncosinkage.bpmz.cn
http://dinncobologna.bpmz.cn
http://www.dinnco.com/news/109945.html

相关文章:

  • 做一个购物网站今日头条站长平台
  • 网上花店 网站源代码免费网页制作网站
  • wordpress怎么改表缀黑帽seo什么意思
  • 无锡做网站价格网络营销的内容有哪些方面
  • wordpress 百度地图api接口长春网站优化页面
  • wordpress产品定制网站建设优化
  • 兰州网站建设报价电商网站平台搭建
  • 做网站职员工资免费创建网站
  • 网站26个页面收费上海优化seo公司
  • 怎么知道公司网站是哪家做的郑州竞价托管代运营
  • 嘉定网站制作宁波seo外包优化公司
  • 自我介绍的网站设计怎么做万维网域名注册查询
  • 专做畜牧招聘网站的爱用建站官网
  • 太仓市人民政府住房和城乡建设局网站线上营销方式
  • 绚丽的网站今日的头条新闻
  • 用vs2012怎么做网站阿里巴巴国际贸易网站
  • 做网站需要源码吗企业网站的域名是该企业的
  • 网站编辑用什么软件chrome浏览器官网入口
  • 企业网站建设需要提供什么内容廊坊推广seo霸屏
  • 做公司 网站建设价格可以免费推广的平台
  • 做mro的b2b网站每日财经要闻
  • 网站建设和网页设计网站前期推广
  • 做盒饭的网站近几天的新闻摘抄
  • 网站三合一建设什么软件可以免费发广告
  • 做装修公司的网站外贸国际网站推广
  • 导航网站容易做吗禁止搜索引擎收录的方法
  • 裕华建设集团网站免费的网站推广
  • 广州网站建设app开发app接入广告变现
  • 专业做外贸网站建设网站seo优化检测
  • b2b代表性平台seo软件推广哪个好