パッケージflash.media
クラスpublic class SoundLoaderContext
継承SoundLoaderContext Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

SoundLoaderContext クラスはサウンドをロードするファイルのセキュリティチェックを提供します。SoundLoaderContext オブジェクトは、コンストラクタと Sound クラスの load() メソッドにパラメータとして渡されます。

このクラスを使用するときは、次のセキュリティモデルを考慮してください。

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

セキュリティ情報について詳しくは、以下を参照してください。



パブリックプロパティ
 プロパティ定義元
  bufferTime : Number = 1000
サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードするミリ秒数です。
SoundLoaderContext
  checkPolicyFile : Boolean = false
サウンドのロードを開始する前に、アプリケーションが、ロードされるサウンドのサーバーからの URL ポリシーファイルのダウンロードを試行するかどうかを指定します。
SoundLoaderContext
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義元
  
SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
新しいサウンドローダーコンテキストオブジェクトを作成します。
SoundLoaderContext
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
bufferTimeプロパティ
public var bufferTime:Number = 1000

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードするミリ秒数です。

SoundLoaderContext.bufferTime の値を、グローバル SoundMixer.bufferTime プロパティを設定してオーバーライドすることはできません。SoundMixer.bufferTime プロパティは SWF ファイルに埋め込まれたストリーミングサウンドのバッファ時間には影響しますが、動的に作成される Sound オブジェクト (ActionScript で作成される Sound オブジェクト) には影響しません。

checkPolicyFileプロパティ 
public var checkPolicyFile:Boolean = false

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

サウンドのロードを開始する前に、アプリケーションが、ロードされるサウンドのサーバーからの URL ポリシーファイルのダウンロードを試行するかどうかを指定します。このプロパティは、呼び出し元の ファイル自身のドメイン外から Sound.load() メソッドを使用してロードされたサウンドに適用されます。

呼び出し元のファイル自体のドメインの外部からサウンドをロードし、呼び出し元のファイルのコードがサウンドのデータに低レベルアクセスを必要とする場合は、このプロパティを true に設定します。サウンドデータへの低レベルアクセスの例です。ID3Info オブジェクトを取得するための Sound.id3 プロパティへの参照、またはロードされたサウンドからサウンドサンプリングを取得する SoundMixer.computeSpectrum() メソッドの呼び出しが含まれます。ロード時に checkPolicyFile プロパティを true に設定せずにサウンドデータにアクセスしようとした場合、必要なポリシーファイルがダウンロードされていないために SecurityError 例外を受け取る場合があります。

ロードするサウンドデータへの低レベルのアクセスを必要としない場合は、checkPolicyFiletrue に設定しないでください。ポリシーファイルの確認はネットワーク帯域幅を消費し、ダウンロードの開始が遅れる場合があるため、必要な場合にのみ行ってください。

Sound.load() を呼び出すときに SoundLoaderContext.checkPolicyFiletrue に設定すると、Flash Player または AIR は、関連する URL ポリシーファイルを正常にダウンロードするか、指定されたサウンドのダウンロードを開始する前に、そのようなポリシーファイルが存在しないことを判別する必要があります。ポリシーファイルの存在を確認するため、Flash Player または AIR は次のアクションをこの順番で実行します。

どのような場合でも、Flash Player または AIR では、適切なポリシーファイルがサウンドのサーバー上に存在していること、ポリシーファイルの場所に基づいて URLRequest.url にあるサウンドファイルへのアクセスが可能であること、および <allow-access-from> タグによって呼び出し元ファイルのドメインによるサウンドへのアクセスが許可されていることが必要となります。

checkPolicyFiletrue に設定した場合、Flash Player または AIR は、ポリシーファイルが検証されるまで待機してからサウンドをロードします。 サウンドデータに対する低レベルの操作(Sound.id3 の呼び出しまたは SoundMixer.computeSpectrum() の呼び出しなど)は、Sound オブジェクトから progress イベントおよび complete イベントが送出されるまで待つ必要があります。

checkPolicyFiletrue に設定していて、適切なポリシーファイルが見つからない場合は、ポリシーファイルを必要とする操作を実行するまでエラーは表示されません。ポリシーファイルが必要になると、Flash Player または AIR は SecurityError 例外をスローします。complete イベントを受け取ると、Sound.id3 の値(try ブロック内)を取得して SecurityError がスローされたかどうかを確認し、関連するポリシーファイルが見つかったかどうかをテストできます。

サーバーサイド HTTP リダイレクトを使用する URL からサウンドをダウンロードする場合は、checkPolicyFile に注意してください。Flash Player または AIR は、URLRequest オブジェクトの url プロパティに対応するポリシーファイルを取得しようとします。URLRequest オブジェクトは Sound.load() () に渡されます。 最終的なサウンドファイルが HTTP リダイレクトによって別の URL から取得される場合、最初にダウンロードされたポリシーファイルはサウンドの最終的な URL(セキュリティ判定においてはこの URL が重要となります)に適用できないことがあります。

このような状況になった場合の解決方法が 1 つあります。progress イベントまたは complete イベントを受け取った後、Sound.url プロパティの値を調べることができます。ここには、サウンドの最終的な URL が格納されています。次に、サウンドの最終的な URL に基づいて算出したポリシーファイルの URL で Security.loadPolicyFile() メソッドを呼び出します。最後に、例外がスローされなくなるまで Sound.id3 の値をポーリングします。

これは AIR アプリケーションサンドボックス内のコンテンツには適用されません。アプリケーションサンドボックス内のコンテンツは、起点に関係なく、常にプログラムによってサウンドコンテンツにアクセスします。

ポリシーファイルの詳細については、『ActionScript 3.0 のプログラミング』の「Flash Player セキュリティ」の章を参照してください。

関連項目

コンストラクタの詳細
SoundLoaderContext()コンストラクタ
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

新しいサウンドローダーコンテキストオブジェクトを作成します。

パラメータ
bufferTime:Number (default = 1000) — サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードする秒数です。
 
checkPolicyFile:Boolean (default = false) — オブジェクトのロード時に URL ポリシーファイルの存在を確認するかどうかを指定します(確認する場合は true)。



次の例では、ロードされるサウンドのバッファが 3 秒に設定されます。

SoundLoaderContext オブジェクトの 1 つ目のパラメータ(context)を使用して、バッファのデフォルト値(1 秒)を 3 秒に増やしています。 値はミリ秒単位です。SoundLoaderContext オブジェクトの 2 つ目のパラメータが true に設定されている場合、オブジェクトのロード時にクロスドメインポリシーファイルが調べられます。ここでは、デフォルト値の false に設定されているため、ポリシーファイルは調べられません。 サウンドオブジェクトの load() メソッドによってコンテキスト設定が使用され、サウンドがストリームを開始する前に、バッファにストリーミングサウンドをプリロードするために 3 秒間待機します。アドビ システムズ社のポッドキャストである URLRequest オブジェクトによってファイルの位置が決定されます。サウンドファイルのロード中に IOErrorEvent.IO_ERROR エラーが発生すると、errorHandler() メソッドが呼び出されます。

package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;
    import flash.media.SoundLoaderContext;
    import flash.events.IOErrorEvent;
    
    public class SoundLoaderContextExample extends Sprite {

        public function SoundLoaderContextExample() {
            var snd:Sound = new Sound();
            var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
            var context:SoundLoaderContext = new SoundLoaderContext(3000, false);

            snd.load(req, context);
            snd.play();      
 
            snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            trace("The sound could not be loaded: " + errorEvent.text);
        }

    }
}




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/media/SoundLoaderContext.html