我正在尝试找到播放音频无缝循环的最佳方式,用户可以在尽可能短的时间内切换到另一个音频,并提供相当数量(30-150)的非常短的循环.OpenAL是否足以满足这一要求,还是需要深入研究音频单元?Apple文档说,对于像仪器这样的实时反馈,Audio Units是正确的选择.
我只想得到社群对此的意见,任何链接和示例项目都将不胜感激.
我正在开发浏览器扩展/附加组件。我们可以在Chrome浏览器中运行它,因此我正在尝试使其在Firefox中运行。
我已将加载项加载到Firefox Developer Edition 49.0a2(2016-07-25)中。
我的扩展程序涉及一个content_script设置为run_at: document_start,因此它可以在运行其他页面脚本之前注入一个脚本标记,从而可以使一个对象可全局用于网站。
在Chrome浏览器中,这似乎工作正常,但在Firefox中,这已证明是一种竞争状况,其他时间大多数页面优先加载页面资源。
是否有一种策略来加载内容脚本,使其可以在运行任何其他页面脚本之前注入并加载脚本?
当我添加日志时,我可以很好地隔离正在发生的事情。在此示例中,内容脚本为:
// inject in-page script
console.log('STEP 1, this always happens first')
var scriptTag = document.createElement('script')
scriptTag.src = chrome.extension.getURL('scripts/inpage.js')
scriptTag.onload = function () { this.parentNode.removeChild(this) }
var container = document.head || document.documentElement
// append as first child
container.insertBefore(scriptTag, container.children[0])
Run Code Online (Sandbox Code Playgroud)
现在,如果文件scripts/inpage.js只是运行日志,例如
console.log('STEP 2, this should always run second')
Run Code Online (Sandbox Code Playgroud)
我访问了一个带有如下脚本的页面:
console.log('Step 3, the page itself, should run last')
Run Code Online (Sandbox Code Playgroud)
实际上,步骤2和步骤3以不确定的顺序运行。
非常感谢!
如果您敢自己尝试,我在特殊分支的公共存储库中有脚本的Firefox兼容版本:https : //github.com/MetaMask/metamask-plugin/tree/FirefoxCompatibility