在Safari iOS上,录音是空的



我已经使用了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中工作?

最新更新