AIR 3.4 と新しい Kindle Fire (第 2 世代、非 HD) で問題が発生しています。Amazon の比較表 ( 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 を参照してください。
- 第 2 世代の Kindle Fire は、外部マイクが接続されていない限り、オーディオ キャプチャをサポートしていません。ただし、Air 内でヘッドフォンかどうかを区別する方法がわかりません。これは、Microphone.isSupported が常に TRUE を返すためです。
- Kindle Fire HD は、外部マイクの有無にかかわらずオーディオ キャプチャをサポートします。
これを処理するために私が知っている最良のメトリックは、これまでのところ、「android.os.Build.MODEL」を使用して、第 1 世代の Kindle のマイクの使用を無効にすることです。しかし、これはちょっと不格好です。また、ユーザーがマイクを接続しているかどうかを判断する方法 (私が知っている) がないため、第 2 世代の 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>
このプログラムを第 2 世代の Kindle Fire で実行すると、次の値が画面に表示されます。
カメラ: 真
カメラUI: 真
マイク: true => [オブジェクト マイク]