所以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();
也不起作用
@TomW在正确的轨道上 - 基本上webkitAudioContext
被暂停,除非它是直接响应用户的点击创建的(在你获得流之前)。
有关更多详细信息和工作示例,请参阅我在https://stackoverflow.com/a/46534088/933879的回答。
什么不适用于移动保存到主屏幕应用程序。我向Apple开发人员发布了一个错误报告。得到一个回复,它是一个重复(这意味着他们知道..没有线索,如果他们将实际修复它)。