<template>
<div>
<view>
<button type="primary" @tap="startRecord">开始录音</button>
<button type="primary" @tap="endRecord">停止录音</button>
<button type="primary" @tap="playVoice">播放MP3</button>
{{JSON.stringify(voicePath)}}
</view>
</div>
</template>
<script>
const recorderManager = uni.getRecorderManager();
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = true;
export default {
data() {
return {
text: 'uni-app',
voicePath: ''
}
},
onLoad() {
let self = this
recorderManager.onStop(function(res) {
self.voicePath = res.tempFilePath;
});
},
methods: {
startRecord() {
console.log('开始录音');
recorderManager.start();
},
endRecord() {
console.log('录音结束');
recorderManager.stop();
},
playVoice() {
console.log('播放MP3');
innerAudioContext.src = 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/audio/music.mp3';
innerAudioContext.onError((res) => {
console.log(res.errMsg);
console.log(res.errCode);
});
innerAudioContext.play();
}
}
}
</script>
- 发布:2020-07-02 18:03
- 更新:2020-07-28 18:08
- 阅读:2493
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.7.14
手机系统: iOS
手机系统版本号: iOS 13.4
手机厂商: 苹果
手机机型: iPhone X
页面类型: nvue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
先给iPhone X连上airpods耳机,然后分别点击示例代码的“开始录音”、“停止录音”完成一次录音过程,然后点击“播放MP3”
先给iPhone X连上airpods耳机,然后分别点击示例代码的“开始录音”、“停止录音”完成一次录音过程,然后点击“播放MP3”
预期结果:
使用连上的airpods耳机播放音频
使用连上的airpods耳机播放音频
实际结果:
使用手机扬声器播放音频
使用手机扬声器播放音频
bug描述:
iPhone X在连接airpods耳机的情况下,先调用录音组件完成录音,再使用音频组件播放MP3文件,不会使用耳机播放,而是使用的手机的扬声器;
复现这个bug,要按上面的顺序,先使用录音组件录音,再使用音频组件播放;
如果直接使用音频组件播放是没这个bug的;
补充:实际手机iOS系统版本号是13.5.1,发帖的时候没有这个选项就选了其他的
2 个回复
DCloud_iOS_XHY
此问题已经在 2.8.2 版本修复
jxtian
iOS无线耳机,确认bug,等待处理。你也可以测试有线耳机是否有相同问题,感谢反馈!