Flash移动开发 - 如何使用AIR 3.4检测麦克风可用性?

时间:2012-10-08 19:58:25

标签: android mobile air microphone

我遇到了AIR 3.4和新的Kindle Fire(第二代,非HD)的问题。 没有麦克风,正如亚马逊的比较图表所示:https://developer.amazon.com/sdk/fire/specifications.html,但AIR告诉我有一个麦克风。 它还会为Camera.isSupported和CameraUI.isSupported报告值TRUE。

所以这是关于Kindle Fire的独家新闻:

  • 第1代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上运行此程序会导致屏幕上显示以下值:

  

相机:是的

     

CameraUI:true

     

麦克风:true =&gt; [对象麦克风]

0 个答案:

没有答案