生成的mp3文件不能在IOS的Safari、Chrome或Firefox上播放。

问题描述 投票:0回答:1

我在JQuery中使用MediaRecorder进行录制,现在Safari中也支持。它必须被启用。

这工作。

下面的代码片段是采取的记录。抓取数据,然后将其发布到一个PHP文件,这是简单地写一个文件,并保存为MP3。


recordButton.addEventListener("click", toggleRecording);


function toggleRecording() {
    if (recorder && recorder.state == "recording") {
        recorder.stop();
        gumStream.getAudioTracks()[0].stop();
        $("#record").html('Record');
    } else {
        navigator.mediaDevices.getUserMedia({
            audio: true
        }).then(function(stream) {
            gumStream = stream;
            const chunks = [];
            recorder = new MediaRecorder(stream);
            recorder.ondataavailable = function(e) {
                chunks.push(e.data);
                const blob = new Blob(chunks, { type: 'audio/mpeg' }); 

                var reader = new window.FileReader();
                reader.readAsDataURL(blob);
                reader.onloadend = function () {
                     base64data = reader.result;
                     mp3 = reader.result.replace('data:audio/mpeg;base64,',''); 

                    var fd = new FormData();
                    fd.append('b',mp3);
                    fd.append('c',$("#company").val());
                    fd.append('d',$("#device").val());

                    $.ajax({
                        type: 'POST',
                        url: '/include/concierge/storeBlob.php',
                        data: fd,
                        processData: false,
                        contentType: false
                    }).done(function(data) {
                        $("#message-box").addClass("active-flyin");
                        $("#menu-hider").addClass("menu-hider-active flyin-hider");
                        $("#returnid").val(data);
                    });
                }
            };
            recorder.start();
            $("#record").html('Stop');
        });
    }
}   

它被发布到一个PHP文件,在那里它是简单地做......。


file_put_contents($filename, base64_decode($blob));

然后我就像......一样调用这个文件。


<audio controls id='mess-".$d->id."' preload='none'>
    <source src='".returnURI($d->filename)."' type='audio/mpeg'>
    This text displays if the audio tag isn't supported.
</audio>

其中src是......。https:/my.digitalconciergehub.co.uktmpcompany1walkietalkie200103135121audio.mp3。

在Android、windows桌面浏览器中,这一切都能正常工作,上面的链接也能用。

在IOS和Mac Safari上就不行了。我猜测这是与MP3的格式有关?

php jquery ios safari mp3
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.