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

网站优化效果怎么样网站运营管理报告总结

网站优化效果怎么样,网站运营管理报告总结,哈尔滨开发公司,如何成为厂家代理商1.权限配置 在uni-app开发H5页面时,需要在manifest.json文件中添加录音权限的配置。具体如下: {"h5": {"permissions": {"scope.record": {"desc": "请授权使用录音功能"}}} }这段配置代码是用于向…

1.权限配置

在uni-app开发H5页面时,需要在manifest.json文件中添加录音权限的配置。具体如下:

{"h5": {"permissions": {"scope.record": {"desc": "请授权使用录音功能"}}}
}

这段配置代码是用于向用户请求麦克风权限,确保应用在运行时可以访问设备的音频输入。

编写获取权限代码

在获取了麦克风权限后,我们可以利用navigator.mediaDevices.getUserMedia接口获取音频流,然后通过MediaRecorder接口进行录音。接下来,我们将实现一个简单的录音功能。

首先,我们在页面中添加录音按钮和录音状态显示的HTML结构:

<template><view><button @click="startRecording">开始录音</button><button @click="stopRecording" :disabled="!isRecording">停止录音</button><text>录音状态:{{ isRecording ? '录音中' : '未录音' }}</text></view>
</template>

这个部分用于在页面上展示录音的控制按钮和状态信息。接下来,我们编写JavaScript代码,分别实现将音频流转换为Blob文件并上传、将音频流转换为Base64字符串上传,以及将音频文件下载到本地的功能。

js代码(将音频文件转换为Blob上传)

<script>
export default {data() {return {isRecording: false,mediaRecorder: null,audioChunks: []};},methods: {async startRecording() {try {const stream = await navigator.mediaDevices.getUserMedia({ audio: true });this.mediaRecorder = new MediaRecorder(stream);this.mediaRecorder.ondataavailable = (event) => {this.audioChunks.push(event.data);};this.mediaRecorder.onstop = () => {const audioBlob = new Blob(this.audioChunks, { type: 'audio/wav' });this.uploadAudio(audioBlob);};this.mediaRecorder.start();this.isRecording = true;} catch (error) {console.error('获取麦克风权限失败:', error);}},stopRecording() {if (this.mediaRecorder) {this.mediaRecorder.stop();this.isRecording = false;}},uploadAudio(audioBlob) {const formData = new FormData();formData.append('audio', audioBlob, 'recorded_audio.wav');uni.uploadFile({url: 'https://xxx.com/upload', // 替换为你的后端接口地址filePath: URL.createObjectURL(audioBlob),name: 'audio',formData: formData,success: (res) => {console.log('上传成功:', res);},fail: (err) => {console.error('上传失败:', err);}});}}
};
</script>

js代码(将音频文件转换为base64类型上传)

<script>
export default {data() {return {isRecording: false,mediaRecorder: null,audioChunks: []};},methods: {async startRecording() {try {const stream = await navigator.mediaDevices.getUserMedia({ audio: true });this.mediaRecorder = new MediaRecorder(stream);this.mediaRecorder.ondataavailable = (event) => {this.audioChunks.push(event.data);};this.mediaRecorder.onstop = () => {const audioBlob = new Blob(this.audioChunks, { type: 'audio/wav' });this.convertToBase64(audioBlob);};this.mediaRecorder.start();this.isRecording = true;} catch (error) {console.error('获取麦克风权限失败:', error);}},stopRecording() {if (this.mediaRecorder) {this.mediaRecorder.stop();this.isRecording = false;}},convertToBase64(audioBlob) {const reader = new FileReader();reader.readAsDataURL(audioBlob);reader.onloadend = () => {const base64Audio = reader.result;this.sendAudioToBackend(base64Audio);};},sendAudioToBackend(base64Audio) {uni.request({url: 'https://xxx.com/upload', // 替换为你的后端接口地址method: 'POST',data: {audio: base64Audio},success: (res) => {console.log('上传成功:', res);},fail: (err) => {console.error('上传失败:', err);}});}}
};
</script>

JS代码(下载录制好的音频)

downloadAudio(audioBlob) {const url = URL.createObjectURL(audioBlob);const a = document.createElement('a');a.style.display = 'none';a.href = url;a.download = 'recorded_audio.wav';document.body.appendChild(a);a.click();window.URL.revokeObjectURL(url);
}
http://www.dtcms.com/wzjs/568059.html

相关文章:

  • 网站开发应财务如何记账网站建设框架程序
  • 网站pv怎么统计国税网站建设现状
  • 大庆开发网站公司王店镇建设中学网站
  • 网站目录有什么意义建立网站怎么赚钱
  • 网站推广的公司站长网站查询
  • 传奇手游大型网站服装微商城网站建设
  • 一级a做爰片不卡的网站梅西网页设计作业
  • 中国建设行业网站云南网络公司排名
  • 白色网站配色大数据精准获客软件
  • 上海网站开发培训03173软件开发工具
  • 网站开发上线流程响应式模板网站建设
  • 为什么网站建设wordpress发不了邮件
  • 网站制作尺寸金融软件开发公司前十
  • 佛山网站seoWordPress国外主机
  • 优化网站作用做购物网站怎么赚钱
  • 网站收录地址网页设计有哪些内容
  • 建筑直聘网单纯做seo能否提升网站流量
  • 网站角色权限福建省建设厅招标网站
  • 食品网站应该怎么做wordpress注册邮件发送设置
  • 网站 网页区别个人做信息分类网站需备案吗
  • 网站模板文件下载怎么做网站栏目
  • 广州网站建设怎样做网站信息做参考文献
  • 南通专业网站排名推广有哪些公司的网站做的很好看
  • 吴忠住房和城乡建设局网站网站做xss过滤
  • php 免费装修网站中学生设计制作图片
  • 免费网站seo排名优化上海网站维护
  • 在线课程软件网站建设费用购买完域名后怎么做网站
  • 反网站搭建一条龙新密市城乡建设局网站
  • 国外域名拍卖网站分类 网站模板
  • 有哪个网站教人做美食深圳西乡建网站