我已经使用了recordrtc来录制音频并将其发送到语音到文本API。
以某种方式,除了使用Safari iOS外,一切都很好。
在使用Safari iOS时,我要检索为base64字符串的录音,
是否以某种方式从录音机对象中返回。
以前的问题被问到了使用另一个库,
然而,RecordRTC的文档明确表示它完全支持Safari iOS。
您能帮我找出问题并找到解决方法吗?
我的代码:
async initMic() {
let stream = await navigator.mediaDevices.getUserMedia({video: false, audio: true});
mic = new RecordRTCPromisesHandler(stream, {
type: 'audio',
mimeType: 'audio/wav',
recorderType: RecordRTC.StereoAudioRecorder,
sampleRate: 48000,
numberOfAudioChannels: 1,
});
},
async sendRecording() {
let vm = this;
mic.stopRecording(function() {
mic.getDataURL(function(dataURL) {
vm.$store.dispatch('UpdateAudioBase64', dataURL.replace('data:audio/wav;base64,', ''));
mic.reset();
vm.$emit('send-recording');
});
});
},
**字符串'替换'函数旨在删除base64标头
    在将其发送到语音到文本API之前(API的需求(。
谢谢!
如果没记错的话,Apple Fu ...再次与他们的愚蠢政策混在一起,问题是您不能做很多事情(例如设置录音机(没有用户触发它们,
因此,您应该在单击事件侦听器中包装录音机,用户单击按钮,然后您的mic = new RecordRTCPromisesHandler(stream, {... etc
开火和记录开始。
检查此示例https://github.com/muaz-khan/recordrtc/blob/master/master/simple-demos/audio-recording.html
在这里这个技巧有效
顺便说一句,您的代码在Mac Safari中工作?