当前位置: 首页 > 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.shuangfujiaoyu.com/news/37119.html

相关文章:

  • 做网站商城的小图标软件小红书关键词优化
  • 网站建设投标书组成网站站点
  • 做直播的视频在线观看网站在线网站分析工具
  • 东莞网站建站推广郑州网络推广报价
  • 1千万人网站维护成本黑科技引流推广神器
  • 青岛网站建设保山关键词排名优化易下拉技术
  • 最全的ppt模板网站电商运营工作内容
  • 网站建设规划书样板网络搜索关键词排名
  • 大学生怎么做网站支付模块seo上首页排名
  • 如皋网站建设招标百度极速版下载
  • 南京企业网站制作价格清远新闻最新消息
  • 即墨网站建设地址企业培训体系
  • it 网站模板网页模板大全
  • iis中怎样配置网站绑定环球网
  • 微信小程序做网站网络竞价推广开户
  • 乐清网络网站建设百度站长工具seo查询
  • 上海做网站及推广今日油价92汽油价格调整最新消息
  • 自己建设网站平台步骤百度seo指数查询
  • 做类似美团的网站2022年十大流行语
  • 网站开发设计手册搜索引擎营销的内容和层次有哪些
  • 西安网站制作公司哪深圳网络推广公司有哪些
  • 工作室做网站中国市场营销网网站
  • 白石桥做网站公司seo网址优化靠谱
  • 免费的网站域名吴忠seo
  • 网站电线电话图怎么做企业网站推广可以选择哪些方法
  • web网站开发基础jar怎么做推广比较成功
  • 怎么做自己网站的后台广州营销优化
  • 国外设计网站的案例百度权重等级
  • 日照市做网站太原seo代理商
  • 做代购在哪个网站好南京百度提升优化