繁体   English   中英

在适用于所有浏览器和iOS的网站上录制音频

[英]Record Audio on Website that works on all browsers and iOS

我浪费了大量的时间在我正在建立的网站中实现多个录音选项,但每个都只能在Chrome中工作,只能在Firefox中工作,两者都可以在Safari中使用,而且在iOS上都不起作用。

网站需要允许用户记录他们的消息并将其保存在表单状态以供提交。

我正在阅读的所有当前文章都是几个月之久,并提到iOS不会/很快就会支持它。 我在iOS上尝试过移动Chrome,但它仍无效。

有没有人找到一种方法来简单地在浏览器和移动网站上录制音频?

我试过的事情:

目前使用以下代码,适用于Chrome和Firefox。

HTML

<audio controls src="" id="audio"></audio> <a class="button" id="record">Record</a> <input type="hidden" id="audiofile" name="audiofile" value="" aria-hidden="true"/>

使用Francium语音库:

使用Javascript

    // Audio Recording for Phone Calls
  $(document).on("click", "#record:not(.stop)", function(){
  elem = $(this);
    $("#audio").attr("src","");
    $("#audiofile").val("");
  Fr.voice.record($("#live").is(":checked"), function(){
  elem.addClass("stop");
});
    elem.html("Stop <label id='minutes'>00</label>:<label   id='seconds'>00</label>");
    var minutesLabel = document.getElementById("minutes");
    var secondsLabel = document.getElementById("seconds");
    var totalSeconds = 0;
    setInterval(setTime, 1000);

    function setTime() {
        ++totalSeconds;
        secondsLabel.innerHTML = pad(totalSeconds % 60);
        minutesLabel.innerHTML = pad(parseInt(totalSeconds / 60));
    }

    function pad(val) {
        var valString = val + "";
        if (valString.length < 2) {
            return "0" + valString;
        } else {
            return valString;
        }
    }
});

$(document).on("click", ".stop", function(){
    elem = $(this);
    elem.html("Record");
    elem.removeClass("stop");
Fr.voice.export(function(base64){
  $("#audio").attr("src", base64);
        $("#audiofile").val(base64);
        $("#audio")[0].play();
}, "base64");
    Fr.voice.stop();
});  

我发现了一种最终适用于Chrome,Firefox和iOS Safari的技术。 但是在Safari中存在getUserMedia的问题,但我现在正在研究它。

https://github.com/GersonRosales/Record-Audios-and-Videos-with-getUserMedia

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM