| パッケージ | flash.media |
| クラス | public final class SoundMixer |
| 継承 | SoundMixer Object |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
sampleData イベントを送出する Sound オブジェクトに応じて生成されたサウンド)は制御しません。
| プロパティ | 定義元 | ||
|---|---|---|---|
| bufferTime : int [静的]
サウンドのストリーミングを開始するまでに、バッファに埋め込まれたストリーミングサウンドをプリロードする秒数です。 | SoundMixer | ||
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
![]() | prototype : Object [静的]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| soundTransform : SoundTransform [静的]
グローバルサウンドプロパティを制御する SoundTransform オブジェクトです。 | SoundMixer | ||
| メソッド | 定義元 | ||
|---|---|---|---|
[静的]
セキュリティ上の制限のためにサウンドが使用できないかどうかを調べます。 | SoundMixer | ||
[静的]
現在のサウンド波形からスナップショットを取得し、指定した ByteArray オブジェクトに配置します。 | SoundMixer | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
[静的]
再生中のサウンドをすべて停止します。 | SoundMixer | ||
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
| bufferTime | プロパティ |
bufferTime:int| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
サウンドのストリーミングを開始するまでに、バッファに埋め込まれたストリーミングサウンドをプリロードする秒数です。ロードされたサウンドのデータ (バッファ時間も含む) には、クロスドメインポリシーファイルを実装していない限り、別のドメインに存在する SWF ファイルからアクセスできません。セキュリティとサウンドの詳細については、Sound クラスの説明を参照してください。ストリーミングします。ロードされたサウンドのデータ (バッファ時間も含む) には、クロスドメインポリシーファイルを実装していない限り、別のドメインに存在するファイルのコードからはアクセスできません。ただし、AIR アプリケーションのアプリケーションサンドボックスでは、コードは任意のソースからのサウンドファイルにあるデータにアクセスできます。セキュリティとサウンドの詳細については、Sound クラスの説明を参照してください。
SoundMixer.bufferTime プロパティは SWF に埋め込まれたストリーミングサウンドのバッファ時間のみに影響し、動的に作成される Sound オブジェクト(ActionScript で作成される Sound オブジェクト)には影響しません。SoundMixer.bufferTime の値は、Sound.load() メソッドに渡される SoundLoaderContext オブジェクトで指定されたバッファ時間のデフォルト値をオーバーライドしたり設定したりすることはできません。
public static function get bufferTime():int public function set bufferTime(value:int):void関連項目
| soundTransform | プロパティ |
soundTransform:SoundTransform| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
グローバルサウンドプロパティを制御する SoundTransform オブジェクトです。SoundTransform オブジェクトには、ボリューム、パン、左スピーカーの割り当て、および右スピーカーの割り当てを設定するプロパティが含まれます。このプロパティで使用される SoundTransform オブジェクトは、個々のサウンド設定が適用された後にすべてのサウンドに適用される最終的なサウンド設定を提供します。
public static function get soundTransform():SoundTransform public function set soundTransform(value:SoundTransform):void関連項目
| areSoundsInaccessible | () | メソッド |
public static function areSoundsInaccessible():Boolean| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
セキュリティ上の制限のためにサウンドが使用できないかどうかを調べます。例えば、このメソッドの呼び出し元コンテンツのドメイン以外のドメインからロードされたサウンドは、そのサウンドのサーバー上に、該当するドメインから自ドメインへのアクセスを許可する URL ポリシーファイルが存在していなければ、アクセスできません。サウンドをロードしたり、再生することはできますが、アクセス不可のサウンドに対して、サウンドの ID3 メタデータの取得などの低レベルの操作は実行できません。
アプリケーションセキュリティサンドボックス内の AIR アプリケーションコンテンツでは、このメソッドを呼び出すと常に false が返されます。 すべてのサウンド(他のドメインからロードされたサウンドを含む)は、アプリケーションセキュリティサンドボックス内のコンテンツにアクセスできます。
Boolean — ブール値のストリング表現です。
|
関連項目
| computeSpectrum | () | メソッド |
public static function computeSpectrum(outputArray:ByteArray, FFTMode:Boolean = false, stretchFactor:int = 0):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
現在のサウンド波形からスナップショットを取得し、指定した ByteArray オブジェクトに配置します。値の形式は正規化された浮動小数値で、範囲は -1.0 ~ 1.0 です。outputArray パラメータに渡す ByteArray オブジェクトは、新しい値で上書きされます。作成される ByteArray オブジェクトのサイズは 512 に固定され(値は浮動小数値)、最初の 256 個は左チャンネルを表し、次の 256 個は右チャンネルを表します。
メモ : このメソッドは、ローカルファイルのセキュリティ制限とドメイン間のデータロードに関する制限に従います。 ローカルファイルを操作する場合、または呼び出し元コンテンツとは異なるドメインに存在するサーバーからロードしたサウンドを操作する場合は、クロスドメインポリシーファイルを使用してサンドボックスの制限に対処しなければならないことがあります。 詳細については、Sound クラスの説明を参照してください。また、このメソッドは、RTMP サーバーと同じドメインに存在するコンテンツから呼び出された場合でも、RTMP ストリームからデータを抽出するために使用することはできません。
このメソッドは、Flash Player 9.0.115.0 以降と Adobe AIR の RTMP 上でサポートされています。サーバーサイドスクリプトで、Flash Media Server 上のストリームへのアクセスを制御することができます。詳細については、Client.audioSampleAccess プロパティおよび Client.videoSampleAccess プロパティのトピック(『Server-Side ActionScript Language Reference for Adobe Flash Media Server』)を参照してください。
パラメータ
outputArray:ByteArray — サウンドに関連する値を保持する ByteArray オブジェクトです。セキュリティ上の制限のためにサウンドが使用できない場合 (areSoundsInaccessible == true)、outputArray オブジェクトは変更されません。すべてのサウンドが停止している場合、outputArray オブジェクトには 0 が詰められます。
| |
FFTMode:Boolean (default = false) — サウンドデータに対して最初にフーリエ変換を実行するかどうかを示すブール値です。このパラメータを true に設定すると、このメソッドは未処理のサウンド波形ではなく周波数スペクトルを返します。周波数スペクトルでは、低い周波数は左側に、高い周波数は右側に表されます。
| |
stretchFactor:int (default = 0) — サウンドサンプリングの解像度です。例えば、stretchFactor 値に 0 を設定した場合、データは 44.1 KHz でサンプリングされ、1 の場合は 22.05 KHz、2 の場合は 11.025 KHz となります。
|
関連項目
computeSpectrum() メソッドを使用して、サウンド波形データのグラフィック表現を生成します。
コンストラクタで、サウンドファイルがロードされ、再生に設定されます。この例では、エラー処理はありません。また、サウンドファイルが SWF ファイルと同じディレクトリにあると想定しています。この例では、サウンドの再生中に Event.ENTER_FRAME イベントを待機し、onEnterFrame() メソッドを繰り返しトリガして、サウンドデータ値のグラフを描画します。サウンドの再生が終了すると、onPlaybackComplete() メソッドは、Event.ENTER_FRAME イベントのリスナーを削除することにより描画処理を停止します。
onEnterFrame() メソッドでは、computeSpectrum() メソッドによって bytes バイト配列オブジェクトに生のサウンドが保存されます。データは 44.1 KHz でサンプリングされます。512 バイトのデータを含む各バイト配列には、-1 ~ 1 の浮動小数値が含まれます。前半の 256 バイトの値は左チャンネルを表し、後半の 256 バイトの値は右チャンネルを表します。1 つ目の for ループは、前半の 256 バイトのデータ値(左ステレオチャンネル)を読み取り、Graphics.lineTo() メソッドを使用して、各ポイントから次のポイントまでの間に線を描画します。サウンド波形のベクターグラフィック表示は、クラスの Sprite オブジェクトに直接記述されます。バイトストリームから 32 ビット浮動小数点数としてサウンドのバイトが読み取られ、グラフの垂直方向の範囲に適合するようにプロットの高さで乗算されます。幅はチャンネルの長さの 2 倍に設定されます。2 つ目の for ループは、後半の 256 バイトの値 (右ステレオチャンネル) を読み取り、逆の順序で線を描画します。g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT); メソッドおよび g.lineTo(0, PLOT_HEIGHT); メソッドにより波形のベースラインが描画されます。生成される波形プロットから、鏡像効果が生まれます。
package {
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.net.URLRequest;
import flash.utils.ByteArray;
import flash.text.TextField;
public class SoundMixer_computeSpectrumExample extends Sprite {
public function SoundMixer_computeSpectrumExample() {
var snd:Sound = new Sound();
var req:URLRequest = new URLRequest("Song1.mp3");
snd.load(req);
var channel:SoundChannel;
channel = snd.play();
addEventListener(Event.ENTER_FRAME, onEnterFrame);
channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
}
private function onEnterFrame(event:Event):void {
var bytes:ByteArray = new ByteArray();
const PLOT_HEIGHT:int = 200;
const CHANNEL_LENGTH:int = 256;
SoundMixer.computeSpectrum(bytes, false, 0);
var g:Graphics = this.graphics;
g.clear();
g.lineStyle(0, 0x6600CC);
g.beginFill(0x6600CC);
g.moveTo(0, PLOT_HEIGHT);
var n:Number = 0;
for (var i:int = 0; i < CHANNEL_LENGTH; i++) {
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
g.endFill();
g.lineStyle(0, 0xCC0066);
g.beginFill(0xCC0066, 0.5);
g.moveTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
for (i = CHANNEL_LENGTH; i > 0; i--) {
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(0, PLOT_HEIGHT);
g.endFill();
}
private function onPlaybackComplete(event:Event):void {
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
}
| stopAll | () | メソッド |
public static function stopAll():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
再生中のサウンドをすべて停止します。
このプロパティを使用するときは、次のセキュリティモデルを考慮してください。
SoundMixer.stopAll() メソッドを呼び出すと、呼び出し元のオブジェクトと同じセキュリティサンドボックス内にあるサウンドのみを停止します。呼び出し元のオブジェクトと同じサンドボックスから再生を開始しなかったサウンドは、停止されません。load() メソッドを使用すると、SoundLoaderContext オブジェクトである context パラメータを指定できます。SoundLoaderContext オブジェクトの checkPolicyFile プロパティを true に設定した場合、Flash Player または Adobe AIR は、サウンドのロード元のサーバー上にクロスドメインポリシーファイルがあるかどうかをチェックします。サーバーにクロスドメインポリシーファイルが存在しており、そのファイルで呼び出し元コンテンツのドメインが許可されている場合、SoundMixer.stopAll() メソッドを使用してロードされたサウンドを停止することができます。許可されていない場合は、停止できません。ただし、Adobe AIR では、application セキュリティサンドボックス内のコンテンツ(AIR アプリケーションと共にインストールされたコンテンツ)は、これらのセキュリティ制限による制限を受けません。
詳細については、次のトピックを参照してください。
stopAll() メソッドを使用して、同時に再生される 2 つのサウンドをミュートします。
コンストラクタで、2 つの異なるサウンドファイルがロードされ、再生するように設定されます。1 つ目のサウンドは、ローカルにロードされ、サウンドチャンネルに割り当てられます。ファイルが SWF ファイルと同じディレクトリにあると想定しています。2 つ目のファイルは、アドビ システムズ社のサイトからロードされ、ストリームされます。SoundMixer.stopAll() メソッドを使用するには、すべてのサウンドがアクセス可能である必要があります。SoundLoaderContext オブジェクトを使用して、クロスドメインポリシーファイルをチェックできます。それぞれのサウンドには、サウンドファイルのロード中に IO エラーが発生した場合に呼び出されるイベントリスナーもあります。muteButton テキストフィールドも作成されます。マウスのクリックを待機し、muteButtonClickHandler() メソッドを呼び出します。
muteButtonClickHandler() メソッドで、テキストフィールドの内容が「MUTE」の場合、areSoundsInaccessible() メソッドにより、サウンドミキサーがファイルにアクセスできるかどうかがチェックされます。ファイルがアクセス可能の場合、stopAll() メソッドによってサウンドが停止されます。テキストフィールドをもう一度クリックすると、1 つ目のサウンドの再生が開始され、テキストフィールドの内容が再び "MUTE" に変わります。今度は、stopAll() メソッドによって、実行中の 1 つのサウンドがミュートされます。サウンドチャンネルの stop() メソッドを使用して、チャンネルに割り当てられた特定のサウンドを停止することもできます。(チャンネルの機能を使用するには、play() メソッドを呼び出すたびに、サウンドをチャンネルに再割り当てする必要があります)。
package {
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundLoaderContext;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.MouseEvent;
import flash.events.IOErrorEvent;
public class SoundMixer_stopAllExample extends Sprite {
private var firstSound:Sound = new Sound();
private var secondSound:Sound = new Sound();
private var muteButton:TextField = new TextField();
private var channel1:SoundChannel = new SoundChannel();
public function SoundMixer_stopAllExample() {
firstSound.load(new URLRequest("mySound.mp3"));
secondSound.load(new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3"));
firstSound.addEventListener(IOErrorEvent.IO_ERROR, firstSoundErrorHandler);
secondSound.addEventListener(IOErrorEvent.IO_ERROR, secondSoundErrorHandler);
channel1 = firstSound.play();
secondSound.play();
muteButton.autoSize = TextFieldAutoSize.LEFT;
muteButton.border = true;
muteButton.background = true;
muteButton.text = "MUTE";
muteButton.addEventListener(MouseEvent.CLICK, muteButtonClickHandler);
this.addChild(muteButton);
}
private function muteButtonClickHandler(event:MouseEvent):void {
if(muteButton.text == "MUTE") {
if(SoundMixer.areSoundsInaccessible() == false) {
SoundMixer.stopAll();
muteButton.text = "click to play only one of sound.";
}
else {
muteButton.text = "The sounds are not accessible.";
}
}
else {
firstSound.play();
muteButton.text = "MUTE";
}
}
private function firstSoundErrorHandler(errorEvent:IOErrorEvent):void {
trace(errorEvent.text);
}
private function secondSoundErrorHandler(errorEvent:IOErrorEvent):void {
trace(errorEvent.text);
}
}
}
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/media/SoundMixer.html