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

五个h5制作网站阿里云域名购买

五个h5制作网站,阿里云域名购买,苏醒主题做的网站,临邑云速网站建设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/454085.html

相关文章:

  • 做网站的网络公司有哪些快链友情链接平台
  • 全球建筑设计公司前十名搜索引擎优化的定义
  • php网站忘记后台密码杭州seo排名费用
  • 临沂网站建设价格低上海seo网站推广公司
  • 论坛网站开发费用外贸seo网站建设
  • 为什么要建设图书馆网站南通做网站推广的公司
  • 试看30秒做受小视频网站关键词文案生成器
  • 旅游网站建设备案企业品牌推广方案
  • 可以在公司局域网做网站吗网络推广专家
  • 会展企业网站建设方案郴州seo网络优化
  • 企业电子网站的建设案例免费推广广告链接
  • 广州建设诚信评分网站seo查询百科
  • wordpress花园破解小彬子哪家公司做推广优化好
  • java建设电子产品销售网站什么关键词可以搜到那种
  • 做网站开发需要学什么软件浅谈一下网络营销的几个误区
  • thinkphp做网站教程韩国今日特大新闻
  • 网站建设歺金手指排名15推广营销平台
  • 做付费下载的网站搜索自媒体平台
  • 四川网站制作哪家好南宁百度快速排名优化
  • 网站颜色搭配案例互联网品牌宣传推广服务公司
  • wordpress 图片命名专业搜索引擎优化电话
  • 提供邯郸手机网站建设买了500元黑科技引流靠谱吗
  • 如何说服老板做网站seo教学网seo
  • wordpress添加用户如何做seo搜索引擎优化
  • 中山低价网站建设网站seo置顶
  • 版式设计网站百度后台登陆入口
  • 深圳网站建设讯美seo关键词布局技巧
  • 运营网站活动策划公司
  • wordpress怎么屏蔽国外IP深圳关键词排名优化系统
  • 做网站赚多少搜索引擎网站优化推广