无法使用Web Audio API与iOS 11 Safari配合使用

问题描述 投票:5回答:2

所以iOS 11 Safari应该添加对Web Audio API的支持,但它似乎仍然无法使用这个javascript代码:

//called on page load
get_user_media = get_user_media || navigator.webkitGetUserMedia;  
get_user_media = get_user_media || navigator.mozGetUserMedia;
get_user_media.call(navigator, { "audio": true }, use_stream, function () { });
function use_stream(stream){
    var audio_context = new AudioContext();
    var microphone = audio_context.createMediaStreamSource(stream);
    window.source = microphone; // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=934512
    var script_processor = audio_context.createScriptProcessor(1024, 1, 1);
    script_processor.connect(audio_context.destination);
    microphone.connect(script_processor);
    //do more stuff which involves processing the data from user's microphone...
}

我复制粘贴了大部分代码,所以我只是粗略地了解它。我知道它应该(并且在其他浏览器上)捕获用户的麦克风以进行进一步处理。我知道var audio_context = new AudioContext();行上的代码中断(因为在运行之后没有代码),但没有任何错误消息因为我没有调试iOS Safari所需的mac(苹果已经死> _

e:忘了提到我查了一下,显然我在Safari中使用Web Audio API之前需要关键字“webkit”,但是使它成为var audio_context = new webkitAudioContext();也不起作用

javascript ios safari
2个回答
8
投票

@TomW在正确的轨道上 - 基本上webkitAudioContext被暂停,除非它是直接响应用户的点击创建的(在你获得流之前)。

有关更多详细信息和工作示例,请参阅我在https://stackoverflow.com/a/46534088/933879的回答。


0
投票

什么不适用于移动保存到主屏幕应用程序。我向Apple开发人员发布了一个错误报告。得到一个回复​​,它是一个重复(这意味着他们知道..没有线索,如果他们将实际修复它)。

© www.soinside.com 2019 - 2024. All rights reserved.