Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Flash mobile开发-如何使用AIR 3.4检测麦克风可用性?_Android_Mobile_Air_Microphone - Fatal编程技术网

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

Android Flash mobile开发-如何使用AIR 3.4检测麦克风可用性?,android,mobile,air,microphone,Android,Mobile,Air,Microphone,我在AIR 3.4和新款Kindle Fire(第二代,非高清)上遇到了一个问题。 正如亚马逊的对比图表所示,这里没有麦克风,但AIR告诉我这里有麦克风。 它还报告Camera.isSupported和CameraUI.isSupported的值TRUE 以下是关于Kindle Fire的独家报道: 第一代Kindle Fire不支持从空中捕获音频(即使连接了外部麦克风)。有关详细信息,请参阅: 第二代Kindle Fire不支持音频捕获,除非连接了外部麦克风。然而,我不知道在AIR中有什么方

我在AIR 3.4和新款Kindle Fire(第二代,非高清)上遇到了一个问题。 正如亚马逊的对比图表所示,这里没有麦克风,但AIR告诉我这里有麦克风。 它还报告Camera.isSupported和CameraUI.isSupported的值TRUE

以下是关于Kindle Fire的独家报道:

  • 第一代Kindle Fire不支持从空中捕获音频(即使连接了外部麦克风)。有关详细信息,请参阅:
  • 第二代Kindle Fire不支持音频捕获,除非连接了外部麦克风。然而,我不知道在AIR中有什么方法可以区分耳机和否,因为microscope.isSupported总是返回TRUE
  • Kindle Fire HD支持带或不带外部麦克风的音频捕获
到目前为止,我所知道的处理这个问题的最好方法是使用“android.os.Build.MODEL”来禁用第一代Kindle的麦克风。 不过这有点笨重。 它也不允许我正确处理第二代火灾,因为无法(据我所知)确定用户是否插入了麦克风

你们有谁知道更可靠的检查方法吗

编辑:下面是我创建的一个测试项目,它说明了问题:

<?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上运行此程序会在屏幕上显示以下值:

摄影机:是的

卡美罗:是的

麦克风:true=>[对象麦克风]


如果在实际不受支持的设备上执行Mirror.GetMirror(),会发生什么情况?我想你会得到
null
返回。这可能是此场景中最好的测试。不幸的是,micromic.getmicromic()返回一个micromic对象。(另外,在何时何地调用麦克风.getMirror(),您必须格外小心。这是一个静态方法,不幸的是,调用两次会断开/孤立第一次调用返回的麦克风对象。除了必要的地方,我尽量避免在任何地方使用它。)我已经添加了一个测试应用程序(在我的初始帖子中)这向您展示了我所做的尝试和得到的结果。如果您执行adb shell ls/dev/snd/,您会得到什么?是否有名为
pcmCxDyc
(其中x和y为数字;通常您对pcmC0D0c感兴趣)的设备?那就是PCM捕获设备。啊。有:
$adb外壳ls/dev/snd/controlC0 pcmC0D0p pcmC0D1c pcmC0D1p pcmC0D2c pcmC0D3c pcmC0D3p pcmC0D4c pcmC0D4p pcmC0D5c pcmC0D5p定时器