iOS 和 Android 浏览器中的多声道音频支持
Posted
技术标签:
【中文标题】iOS 和 Android 浏览器中的多声道音频支持【英文标题】:Multi-channel audio support in the browser on iOS and Android 【发布时间】:2011-05-25 15:29:15 【问题描述】:我在 *** 上找到了一个关于 "Creating Audio using javascript in <audio>" 的页面的链接,以及在 how to play audio on multiple channels 上的这个页面。我发现iPhone支持Javascript中的audio标签和Audio对象播放单声道音频,但是有没有办法多声道播放音频?
也许我过于复杂了,所以这就是我想要做的。我想要一种在 Javascript 中制作优雅的音频播放器的方法,它支持从一个音频文件转换到另一个。我要实现的方法是逐渐降低一个通道的音量,同时逐渐增加另一个通道的音量,这样我就会得到一种淡入淡出的效果。仅使用 Javascript 是否有更简单的解决方案?我想另一种解决方案是将音量降低到某个点,在同一频道上启动新的音频文件,然后再次提高音量。这避免了褪色的需要,但如果可能的话,我想褪色。
这可能吗?我知道 html5 规范还没有完成,但是你知道有什么解决方法吗?你们中有人对另一种方法有想法吗?
从这篇关于playing audio in the android browser 的帖子中可以看出,目前尚不支持此功能,但你们中有人知道一旦支持音频标签,它是否会支持多声道音频? Opera mini 支持吗?
【问题讨论】:
几天过去了,没人评论。我引用的页面在大多数与 HTML5 兼容的浏览器(Opera、Firefox 3.6、Firefox 4 [有点小车]、Safari 和 Chrome)上播放多声道音频。它在 IE9(或至少我拥有的版本)中不起作用,但这并不让我感到惊讶。 我的朋友告诉我,在 Android 的下一个版本中应该会解决这个问题。我环顾四周,根据一些论坛,音频标签在新的 Android 版本(姜饼)中有效。有谁知道它是否支持多声道音频? Android 2.4 本月发布。我会在它出来时检查它是否有效。 【参考方案1】:这是我知道的一个老问题:)。
ios Safari 不支持同时播放多个音频对象。此外,iOS 无法使用淡入/淡出效果,因为更改音量设置的唯一方法是从硬件本身。 Apple 决定将此功能仅授予设备用户。音量设置不可由 javascript 写入。它甚至不可读(总是返回 1)。
您可以查看Safari documentation for iOS 了解更多信息。
对于 Android,说实话我不知道。
【讨论】:
+1 有用的信息!这是否意味着只有一个全局卷? (没有每个应用的音量) 如果您正在开发基于 Web 的应用程序,是的,只有一个全局音量和一个音频通道。对于基于 Objective-C 的本机应用程序,它与任何其他操作系统没有太大区别。 AVAudioPlayer 可以用于多个通道,并且它还具有音量设置。然而,它仍然取决于全球音频。如果用户降低或静音音频,您无法更改它。【参考方案2】:据我所知,没有直接的方法可以在一个音频标签上拥有多个通道,但请查看这篇关于使用多个音频标签模拟多个通道的博客文章。 http://www.storiesinflight.com/html5/audio.html
【讨论】:
这实际上是我发布的同一个链接,但我想这可能意味着它是唯一有价值的数据......【参考方案3】:我知道这完全是 hack,但试试我想出的这个技巧......
转到下面的页面并在主行键上键入以播放布鲁斯即兴演奏(同时键入多个键等)
http://davealger.com/jthump/
其工作方式是创建不可见的<iframe>
组件,在破坏框架之前播放声音。
我知道这完全是 hack,我期待将来有更好的 HTML 5 多声道音频支持。
【讨论】:
以上是关于iOS 和 Android 浏览器中的多声道音频支持的主要内容,如果未能解决你的问题,请参考以下文章