【问题标题】:Can't get Web Audio API to work with iOS 11 Safari无法让 Web 音频 API 与 iOS 11 Safari 一起使用
【发布时间】: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


【解决方案1】:

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

请参阅我在https://stackoverflow.com/a/46534088/933879 的回答以获取更多详细信息和一个工作示例。

【讨论】:

  • 谢谢,现在可以使用了。需要将 AudioContext() 更改为 webkitAudioContext() 和一个按钮来恢复 audio_context
  • 有趣。我在 onclick 句柄中有一个带有 audioContext.resume() 的按钮。然后,当我尝试播放声音时,我仍然没有声音。如果我检查音频上下文对象,它的state 属性是running。我还有什么遗漏的吗?
  • @AleksG:可能。如果状态是running,那么您可能没有遇到 this 特定问题,尽管很难说实际问题是什么。
  • 是的......我终于让它在 Cordova 中使用 nativeaudio 插件和在 safari 中使用上述解决方案。但它仍然无法在主屏幕 Safari 应用程序中运行
  • 嗯,我想知道他们是否对主屏幕网络应用程序施加了额外的限制......?很高兴听到它在科尔多瓦工作!
【解决方案2】:

在移动保存到主屏幕应用程序上没有任何功能。我向 Apple 开发人员发布了错误报告。得到回复说它是重复的(这意味着他们知道......不知道他们是否或何时会真正修复它)。

【讨论】:

  • 您有关于这方面的最新信息吗?目前正在为主屏幕应用上的音频苦苦挣扎
猜你喜欢
  • 1970-01-01
  • 2016-01-06
  • 2017-04-05
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多