无法使用Web Audio API与iOS 11 Safari配合使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用Web Audio API与iOS 11 Safari配合使用相关的知识,希望对你有一定的参考价值。
所以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开发人员发布了一个错误报告。得到一个回复,它是一个重复(这意味着他们知道..没有线索,如果他们将实际修复它)。
以上是关于无法使用Web Audio API与iOS 11 Safari配合使用的主要内容,如果未能解决你的问题,请参考以下文章
Web Audio Api 与 Web Speech Api 集成 - 将扬声器/声卡输出流式传输到语音识别 api
可以使用Web Audio API和createMediaElementSource分析来自Icecast的流式音频吗?
Web Audio API:当使用媒体流时,Firefox 中的 FFT 数据与 chrome 中的不同?