检查用户的Flash播放器是否具有音频功能。(Capabilities.hasAudio)

5

有没有办法检查用户是否有声卡?我发现了Capabilities.hasAudio,但不确定它是我应该查看的值。

trace(Capabilities.hasAudio)

指定系统是否具有音频功能。

这个属性始终为true


这让我想起了BeOS的系统函数IsComputerOn(“如果计算机开启则返回1.0,否则未指定”)- 它定义明确,但毫无用处。我想知道它的创造者在想什么(特别是因为现在存在没有音频功能的系统,比以往任何时候都更多)。 - Piskvor left the building
@Piskvor:电脑开着吗?哈哈... @Mattias:干得好。短描述似乎很清楚(“[静态] [只读] 指定系统是否具有音频功能。”),直到你指出,“此属性始终为true”。我假设没有声音的设备/计算机将返回false,那么该描述是错误的,否则该属性完全无用。 - Chunky Chunk
据我所知,对于桌面播放器,它总是返回true,但对于其他设备上的播放器可能会或可能不会如此。文档在这方面并不清晰。 - Marcus Stade
2个回答

4
文档对此并不明确,但我认为Capabilities类中的属性告诉你的是播放器的能力,而不一定是系统的能力。例如,桌面播放器始终会返回true以表示是否具有音频功能,而不管系统是否真正支持音频播放。
不幸的是,我认为没有办法确定实际系统的音频能力。例如,如果禁用了您的声卡,hasAudio仍将返回true。

我很好奇是否有哪些Flash Player版本不支持声音。 - Chunky Chunk
嗯,我不确定,但我认为其他平台上的一些玩家(比如Solaris)可能不支持声音。然而,我认为这个API可能是属于“当时看起来正确”的类别之一。在该平台上有几个这样的例子。 - Marcus Stade
重要的是要理解,hasAudio和hasMP3属性设置基于播放器的能力,而不是运行播放器的系统的能力。桌面系统播放器(适用于Windows、Mac OS和Linux)始终为这两个属性返回true,无论系统是否实际上具有播放声音所需的硬件(即声卡和扬声器)。然而,对于其他设备的播放器,如果设备不支持音频或MP3功能,则可能返回false。 - Marcus Stade
来源(接近底部):http://www.oreillynet.com/pub/a/oreilly/digitalmedia/helpcenter/actionscript30cookbook/chapter3.html?page=3 - Marcus Stade

1

如果没有设备存在,Sound.play() 将返回 null。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接