Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド
ホーム  |  パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  新機能  |  索引  |  付録  |  英語で表示される理由
フィルター: サーバーからデータを取得しています...
サーバーからデータを取得しています...
flash.media 

SoundLoaderContext  - AS3

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

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

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

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

  • 呼び出し元ファイルがネットワークサンドボックスにあり、ロードするサウンドファイルがローカルにある場合、サウンドのロードおよび再生はできません。
  • 呼び出し元がローカルにあり、リモートサウンドのロードおよび再生を試行する場合、デフォルトでは、サウンドのロードや再生ができません。これを行うには、ユーザーが明示的な許可を与える必要があります。
  • サウンドを処理する特定の操作が制限されます。ロードされたサウンドのデータには、URL ポリシーファイルを実装していない限り、別のドメインに存在する ファイルからアクセスできないことに注意してください。この制限の対象となるサウンド関連の API は Sound.id3 プロパティおよび SoundMixer.computeSpectrum() メソッド、SoundMixer.bufferTime メソッド、SoundTransform() メソッドです。

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

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。



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

bufferTime

プロパティ
public var bufferTime:Number = 1000

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

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

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, Flash Lite 4

サウンドのロードを開始する前に、アプリケーションが、ロードされるサウンドのサーバーからの 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 は、既にダウンロードされているポリシーファイルを考慮します。
  • Flash Player または AIR は、Security.loadPolicyFile() の呼び出しで指定された保留されているポリシーファイルのダウンロードを試行します。
  • Flash Player または AIR は、サウンドの URL に対応するデフォルトの場所、/crossdomain.xmlURLRequest.url と同じサーバー)からポリシーファイルをダウンロードしようとします。 サウンドの URL は URLRequest オブジェクトの url プロパティで指定します。URLRequest オブジェクトは Sound.load() または Sound() コンストラクター関数に渡されます。

どのような場合でも、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 アプリケーションサンドボックス内のコンテンツには適用されません。アプリケーションサンドボックス内のコンテンツは、起点に関係なく、常にプログラムによってサウンドコンテンツにアクセスします。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

関連する API エレメント

コンストラクターの詳細

SoundLoaderContext

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

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

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

パラメーター
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);
        }

    }
}




[ X ]英語で表示される理由
ActionScript 3.0 リファレンスガイドのコンテンツが英語で表示されます。

ActionScript 3.0 リファレンスガイドのすべての部分がすべての言語に翻訳されているわけではありません。言語エレメントが翻訳されていない場合、そのエレメントは英語で表示されます。例えば、ga.controls.HelpBox クラスはどの言語にも訳されていません。このため、リファレンスガイドの日本語バージョンでは、ga.controls.HelpBox クラスは英語で表示されます。