サウンドのロード時および再生時のセキュリティ重要事項

Flash Player 9 以降、Adobe AIR 1.0 以降

アプリケーションによるサウンドデータへのアクセスは、Flash Player および AIR のセキュリティモデルに従って制限できます。各サウンドは、コンテンツ自体のサンドボックス(コンテンツサンドボックス)と、サウンドのロードと再生を行うアプリケーションまたはオブジェクトのサンドボックス(オーナーサンドボックス)の 2 つの異なるセキュリティサンドボックスの制限を受けます。アプリケーションセキュリティサンドボックス内の AIR アプリケーションコンテンツの場合、他のドメインからロードしたサウンドを含むすべてのサウンドは、アプリケーションセキュリティサンドボックス内のコンテンツにアクセスできます。ただし、他のセキュリティサンドボックス内のコンテンツは、Flash Player で実行中のコンテンツと同じ規則に従います。Flash Player のセキュリティモデルの一般的な情報と、サンドボックスの定義について詳しくは、 セキュリティ を参照してください。

コンテンツサンドボックスは、詳細なサウンドデータを id3 プロパティを使用してサウンドから抽出するか、または SoundMixer.computeSpectrum() メソッドから抽出するかを制御します。サウンドファイル自体のロードまたは再生を制限するわけではありません。

サウンドファイルの発生ドメインによって、コンテンツサンドボックスのセキュリティ制限が決定します。 一般的に、サウンドファイルがアプリケーションの SWF ファイル、またはサウンドファイルをロードするオブジェクトと同じドメインまたはフォルダーにある場合、アプリケーションまたはオブジェクトには、そのサウンドファイルに対するフルアクセス権が与えられます。 サウンドがアプリケーションとは異なるドメインから発生していても、ポリシーファイルを使用することで、コンテンツサンドボックス内に取り入れることができます。

アプリケーションは、 checkPolicyFile プロパティを持つ SoundLoaderContext オブジェクトを、 Sound.load() メソッドのパラメーターとして渡すことができます。 checkPolicyFile プロパティを true に設定すると、Flash Player または AIR は、サウンドのロード元のサーバーでポリシーファイルを検索します。ポリシーファイルが存在し、ロードされる SWF ファイルのドメインへのアクセス権が付与される場合、SWF は、サウンドファイルのロード、Sound オブジェクトの id3 プロパティへのアクセス、およびロードされたサウンドの SoundMixer.computeSpectrum() メソッドの呼び出しを行うことができます。

オーナーサンドボックスは、サウンドのローカル再生を制御します。 サウンドの再生を開始するアプリケーションまたはオブジェクトによってオーナーサンドボックスが定義されます。

SoundMixer.stopAll() メソッドは、次の基準を満たしている場合、再生中のすべての SoundChannel オブジェクトのサウンドを無音にします。

  • サウンドは、同じオーナーサンドボックス内のオブジェクトによって開始されています。

  • サウンドは、 SoundMixer.stopAll() メソッドを呼び出すアプリケーションまたはオブジェクトのドメインへのアクセス権を付与するポリシーファイルを持つソースから発生しています。

ただし、AIR アプリケーションでは、アプリケーションセキュリティサンドボックス内のコンテンツ(AIR アプリケーションと共にインストールされたコンテンツ)は、これらのセキュリティ制限による制約を受けません。

SoundMixer.stopAll() メソッドが再生中のすべてのサウンドを実際に停止するかどうかを確認するために、アプリケーションで SoundMixer.areSoundsInaccessible() メソッドを呼び出すことができます。このメソッドが値 true を返すと、再生中のサウンドの一部は現在のオーナーサンドボックスの制御の対象外にあるので、 SoundMixer.stopAll() メソッドによって停止されません。

SoundMixer.stopAll() メソッドは、外部ファイルからロードされたすべてのサウンドで、再生ヘッドの動作を停止します。ただし、FLA ファイルに埋め込まれ、Flash オーサリングツールによってタイムラインのフレームに関連付けられたサウンドは、アニメーションが新しいフレームに移動すると再生を再開することがあります。