Flash Player および AIR バージョン 27 のベータ版が公開されています。(Adobe AIR@Labs) 新しい SWF バージョンは 38 です。
今回の主な追加機能および変更点は以下の通りです。
- AIR デスクトップアプリでのテクスチャ非同期アップロードをサポート
- Windows 環境の AIR アプリが DirectX 11に対応
- オーディオデバイスを管理する ActionScript API の追加
AIR 27 では、デスクトップ環境の AIR アプリで非同期のテクスチャアップロードがサポートされたことで、描画処理中に他のテクスチャをアップロードすることができるようになりました。
DirectX 11 サポートは、Windows 8 以降の環境で有効になります。SWF バージョン 38 以降のアプリが対象です。Windows 7 以前の環境では、引き続き DirectX 9 が使用されます。
AudioDeviceManager クラス
Flash Player 27 から新しく AudioDeviceManager クラスが追加されました。これを使うと、オーディオの出力先をスクリプトから指定できるようです。主要な属性は以下の2つです。
AudioDeviceManager.deviceNames AudioDeviceManager.selectedDeviceIndex
deviceNames 属性からは、利用可能なデバイスのリストが取得できます。型は Array です。現在選択されているデバイスは、以下のように selectedDeviceIndex を使って取得できます。
var adm:AudioDeviceManager = AudioDeviceManager.audioDeviceManager;
var deviceArray:Array = adm.deviceNames; var selected:String = deviceArray[adm.selectedDeviceIndex];
プライバシーの観点から、フルスクリーン表示の切り替えなどの機能と同様、ユーザー操作以外によって AudioDeviceManager の API を呼び出すことはできません。そのため開発者が、ユーザーにデバイスを選択させるためのボタン等の UI を作成する必要があります。ユーザーの操作無しに呼び出されたときは、ランタイムエラーとなって動作しない仕様になっています。
それから、オーディオ出力デバイスの変更を通知するイベントが新しく追加されました。ユーザーが Flash Player の UI からデバイスを変更したり、スクリプトが selectedDeviceIndex の値を変更したり、システムにデバイスが追加/削除されると、AudioOutputChangeEvent.AUDIO_OUTPUT_CHANGE イベントが発行されます。
イベントの理由は、AudioOutputChangeEvent.reason の値から知ることができます。以下の 2 つのコードが存在します。
function aocHandler(evt:AudioOutputChangeEvent):void { if (evt.reason == AudioOutputChangeReason.USER_SELECTION) { // ユーザーが異なるデバイスを選択 } else if (evt.reason == AudioOutputChangeReason.DEVICE_CHANGE) { // デバイスに変更があった } }
コメントする