我在使用 AIR 3.4 和新的 Kindle Fire(第 2 代,非高清)时遇到问题。没有麦克风,正如亚马逊的比较图表所示:https ://developer.amazon.com/sdk/fire/specifications.html ,但 AIR 告诉我有麦克风。它还报告 Camera.isSupported 和 CameraUI.isSupported 的值为 TRUE。
所以这里是关于 Kindle Fire 的独家新闻:
- 第一代 Kindle Fire 不能正确支持从 AIR 中捕获音频(即使连接了外部麦克风)。有关详细信息,请参阅:https ://bugbase.adobe.com/index.cfm?event=bug&id=3197063
- 除非连接了外部麦克风,否则第二代 Kindle Fire 不支持音频捕获。但是,我不知道在 AIR 中区分耳机与否的方法,因为 Microphone.isSupported 始终返回 TRUE。
- Kindle Fire HD 支持带或不带外部麦克风的音频捕捉。
到目前为止,我所知道的处理此问题的最佳指标是使用“android.os.Build.MODEL”来禁用第一代 Kindle 的麦克风使用。不过,这有点笨拙。它也不允许我正确处理第二代 Fire,因为(据我所知)无法确定用户是否插入了麦克风。
你们有谁知道更可靠的方法来检查这个吗?
编辑:这是我创建的一个测试项目,它说明了这个问题:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" applicationComplete="init()"
xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160">
<fx:Script>
<![CDATA[
private function init():void {
cameraLabel.text = "Camera: " + Camera.isSupported.toString();
cameraUILabel.text = "CameraUI: " + CameraUI.isSupported.toString();
microphoneLabel.text = "Microphone: " + Microphone.isSupported.toString() + " => " + Microphone.getMicrophone();
}
]]>
</fx:Script>
<s:VGroup horizontalCenter="0" verticalCenter="0">
<s:Label id="cameraLabel" />
<s:Label id="cameraUILabel" />
<s:Label id="microphoneLabel" />
</s:VGroup>
</s:Application>
在第二代 Kindle Fire 上运行此程序会导致屏幕上显示以下值:
相机:真实
相机UI:真
麦克风:true => [对象麦克风]