| パッケージ | flash.media |
| クラス | public class SoundLoaderContext |
| 継承 | SoundLoaderContext Object |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
load() メソッドにパラメータとして渡されます。
このクラスを使用するときは、Flash® Player セキュリティモデルを考慮してください。
Sound.id3 プロパティおよび SoundMixer.computeSpectrum() メソッド、SoundMixer.bufferTime メソッド、SoundTransform() メソッドです。詳細については、以下を参照してください。
| プロパティ | 定義元 | ||
|---|---|---|---|
| bufferTime : Number = 1000
サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードする秒数です。
| SoundLoaderContext | ||
| checkPolicyFile : Boolean = false
サウンドのロードを開始する前に、Flash Player が、ロードされるサウンドのサーバーからのクロスドメインポリシーファイルのダウンロードを試行するかどうかを指定します。
| SoundLoaderContext | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| メソッド | 定義元 | ||
|---|---|---|---|
|
新しい ContextMenu オブジェクトを作成します。
| SoundLoaderContext | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
| bufferTime | プロパティ |
public var bufferTime:Number = 1000
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードする秒数です。
SoundLoaderContext.bufferTime の値を、グローバル SoundMixer.bufferTime プロパティを設定してオーバーライドすることはできません。SoundMixer.bufferTime プロパティは SWF に埋め込まれたストリーミングサウンドのバッファ時間に影響し、動的に作成される Sound オブジェクト (ActionScript で作成される Sound オブジェクト) には影響しません。
| checkPolicyFile | プロパティ |
public var checkPolicyFile:Boolean = false
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
サウンドのロードを開始する前に、Flash Player が、ロードされるサウンドのサーバーからのクロスドメインポリシーファイルのダウンロードを試行するかどうかを指定します。このプロパティは、呼び出し元の SWF ファイル自身のドメイン外から Sound.load() メソッドを使用してロードされたサウンドに適用されます。
呼び出し元の SWF ファイル自身のドメイン外からサウンドをロードし、ActionScript から低レベルでサウンドにアクセスする必要がある場合は、このプロパティを true に設定します。サウンドデータへの低レベルアクセスの例です。ID3Info オブジェクトを取得するための Sound.id3 プロパティへの参照、またはロードされたサウンドからサウンドサンプリングを取得する SoundMixer.computeSpectrum() メソッドの呼び出しが含まれます。ロード時に checkPolicyFile プロパティを true に設定せずにサウンドデータにアクセスしようとした場合、必要なポリシーファイルがダウンロードされていないために SecurityError 例外を受け取る場合があります。
ロードするサウンドデータへの低レベルのアクセスを必要としない場合は、checkPolicyFile を true に設定しないでください。ポリシーファイルの確認はネットワーク帯域幅の浪費になり、ダウンロードの開始が遅れる場合があるため、必要な場合にのみ行います。
Sound.load() を呼び出すときに SoundLoaderContext.checkPolicyFile を true に設定すると、Flash Player は、関連するクロスドメインポリシーファイルを正常にダウンロードするか、指定されたサウンドのダウンロードを開始する前に、そのようなポリシーファイルが存在しないことを判別する必要があります。ポリシーファイルの存在を確認するため、Flash Player は次のアクションをこの順番で実行します。
Security.loadPolicyFile() の呼び出しで指定された保留されているポリシーファイルのダウンロードを試行します。/crossdomain.xml で、URLRequest.url と同じサーバーにあります。サウンドの URL は URLRequest オブジェクトの url プロパティで指定します。URLRequest オブジェクトは Sound.load() または Sound コンストラクタに渡されます。どのような場合でも、Flash Player では、適切なポリシーファイルがサウンドのサーバー上に存在しており、ポリシーファイルの場所に応じて URLRequest.url にあるサウンドファイルへのアクセスが提供され、<allow-access-from> タグに応じて呼び出し元 SWF ファイルのドメインによるアクセスが許可されている必要があります。
checkPolicyFile を true に設定した場合、Flash Player はサウンドをロードする前に、ポリシーファイルが検証されるまで待機します。サウンドデータに対する低レベルの操作 (Sound.id3 の呼び出しまたは SoundMixer.computeSpectrum() の呼び出しなど) の実行を、Sound オブジェクトから progress イベントおよび complete イベントが送出されるまで、待つ必要があります。
checkPolicyFile を true に設定していても、適切なポリシーファイルが見つからない場合は、ポリシーファイルを必要とする操作を実行するまでエラーが表示されません。ポリシーファイルが必要になると、Flash Player は SecurityError 例外をスローします。complete イベントを受け取ると、Sound.id3 の値 (try ブロック内) を取得して SecurityError がスローされたかどうかを確認し、関連するポリシーファイルが見つかったかどうかをテストできます。
サーバーサイド HTTP リダイレクトを使用する URL からサウンドをダウンロードする場合は、checkPolicyFile に注意してください。Flash Player は、URLRequest オブジェクトの url プロパティに対応するポリシーファイルを取得しようとします。URLRequest オブジェクトは Sound.load() に渡されます。最終的なサウンドファイルが HTTP リダイレクトによって別の URL から取得される場合、最初にダウンロードされたポリシーファイルはサウンドの最終的な URL に適用できないことがあります。そのため、URL はセキュリティ判定において重要です。
このような状況になった場合の解決方法が 1 つあります。progress イベントまたは complete イベントを受け取った後、Sound.url プロパティの値を調べることができます。ここには、サウンドの最終的な URL が格納されています。次に、サウンドの最終的な URL に基づいて算出したポリシーファイルの URL で Security.loadPolicyFile() メソッドを呼び出します。最後に、例外がスローされなくなるまで Sound.id3 の値をポーリングします。
ポリシーファイルの詳細については、『ActionScript 3.0 のプログラミング』の「Flash Player セキュリティ」の章を参照してください。
関連項目
| SoundLoaderContext | () | コンストラクタ |
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
新しい ContextMenu オブジェクトを作成します。
パラメータbufferTime:Number (default = 1000) — サウンドのストリーミングを開始するまでに、バッファにストリーミングサウンドをプリロードする秒数です。
|
|
checkPolicyFile:Boolean (default = false) — オブジェクトをロードする際、Flash Player がクロスドメインポリシーファイルの存在を確認する (true) かどうかを指定します。
|
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(30000, 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/flash/9.0_jp/ActionScriptLangRefV3/flash/media/SoundLoaderContext.html