【发布时间】:2017-12-21 21:34:43
【问题描述】:
所以 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(apple die已经 >_
e:忘了提到我查过,显然在 Safari 中使用 Web Audio API 之前我需要关键字“webkit”,但将其设为 var audio_context = new webkitAudioContext(); 也不起作用
【问题讨论】:
-
改成window.webketAudioContext
-
webket 是错字吗?
-
用
var audio_context = window.webkitAudioContext;替换了var audio_context = new AudioContext();,但似乎没有帮助 -
我想知道录制是否和播放有同样的问题:developer.apple.com/library/content/documentation/AudioVideo/… 我想你可能需要运行代码来响应触摸,而不是页面加载。
标签: javascript ios safari