| パッケージ | flash.media |
| クラス | public final class SoundMixer |
| 継承 | SoundMixer Object |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
| プロパティ | 定義元 | ||
|---|---|---|---|
| bufferTime : int
[static]
サウンドのストリーミングを開始するまでに、バッファに埋め込まれたストリーミングサウンドをプリロードする秒数です。
| SoundMixer | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| soundTransform : SoundTransform
[static]
グローバルサウンドプロパティを制御する SoundTransform オブジェクトです。
| SoundMixer | ||
| メソッド | 定義元 | ||
|---|---|---|---|
|
[static]
セキュリティ上の制限のためにサウンドが使用できないかどうかを調べます。
| SoundMixer | ||
|
[static]
現在のサウンド波形からスナップショットを取得し、指定した ByteArray オブジェクトに配置します。
| SoundMixer | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
|
[static]
再生中のサウンドをすべて停止します。
| SoundMixer | ||
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
| bufferTime | プロパティ |
bufferTime:int [read-write]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
サウンドのストリーミングを開始するまでに、バッファに埋め込まれたストリーミングサウンドをプリロードする秒数です。ロードされたサウンドのデータ (バッファ時間も含む) には、クロスドメインポリシーファイルを実装していない限り、別のドメインに存在する SWF ファイルからアクセスできません。セキュリティとサウンドの詳細については、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 [read-write]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
グローバルサウンドプロパティを制御する SoundTransform オブジェクトです。SoundTransform オブジェクトには、ボリューム、パン、左スピーカーの割り当て、および右スピーカーの割り当てを設定するプロパティが含まれます。SoundTransform オブジェクトは、SWF ファイル内に埋め込まれたサウンドのみに影響します。個々のサウンド設定が適用された後に、このプロパティで使用される SoundTransform オブジェクトで最終的にすべてのサウンドを設定します。
public static function get soundTransform():SoundTransform
public function set soundTransform(value:SoundTransform):void
関連項目
| areSoundsInaccessible | () | メソッド |
public static function areSoundsInaccessible():Boolean
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
セキュリティ上の制限のためにサウンドが使用できないかどうかを調べます。たとえば、SWF ファイルが存在するドメインからのアクセスを許可するクロスドメインポリシーファイルが、サウンドのサーバー上に存在しないとします。サウンドは SWF ファイルのドメイン以外のドメインからロードされているため、アクセスできません。サウンドをロードしたり、再生することはできますが、アクセス不可のサウンドに対して、サウンドの ID3 メタデータの取得などの低レベルの操作は実行できません。
戻り値Boolean |
関連項目
| computeSpectrum | () | メソッド |
public static function computeSpectrum(outputArray:ByteArray, FFTMode:Boolean = false, stretchFactor:int = 0):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
現在のサウンド波形からスナップショットを取得し、指定した ByteArray オブジェクトに配置します。値の形式は正規化された浮動小数値で、範囲は -1.0 ~ 1.0 です。outputArray パラメータに渡す ByteArray オブジェクトは、新しい値で上書きされます。作成される ByteArray オブジェクトのサイズは 512 に固定され (値は浮動小数値)、最初の 256 個は左チャンネルを表し、次の 256 個は右チャンネルを表します。
メモ : このメソッドはローカルファイルのセキュリティ制限、およびドメイン間のデータロードに関する制限に従う必要があります。ローカルの SWF ファイルを操作する場合、または SWF を呼び出さずに別のドメインに存在するサーバーからロードしたサウンドを操作する場合は、クロスドメインポリシーファイルによるサンドボックスの制限への対応が必要となる場合があります。詳細については、Sound クラスの説明を参照してください。
このメソッドは、Update 3 以降の RTMP を介してサポートされます。サーバーサイドスクリプトで、Flash Media Server 上のストリームへのアクセスを制御することができます。詳細については、Client.audioSampleAccess プロパティおよび Client.videoSampleAccess プロパティのトピック (『Server-Side ActionScript Language Reference for 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() メソッドを繰り返しトリガして、サウンドデータ値のグラフを描画します。サウンドの再生が終了すると、Event.ENTER_FRAME イベントのリスナーを削除することにより、onPlaybackComplete() メソッドによって描画処理が停止されます。
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 |
| Player のバージョン : | Flash Player 9 |
再生中のサウンドをすべて停止します。
再生ヘッドは停止されません。ストリーミングするために設定されたサウンドは、そのサウンドが置かれているフレームに再生ヘッドが移動すると再生を再開します。
このプロパティを使用するときは、Flash Player セキュリティモデルを考慮してください。
SoundMixer.stopAll() メソッドを呼び出すと、呼び出し元のオブジェクトと同じセキュリティサンドボックス内にあるサウンドのみを停止します。呼び出し元のオブジェクトと同じサンドボックスから再生を開始しなかったサウンドは、停止されません。load() メソッドを使用すると、SoundLoaderContext オブジェクトである context パラメータを指定できます。SoundLoaderContext オブジェクトの checkPolicyFile プロパティを true に設定した場合、Flash Player は、サウンドがロードされるサーバー上にクロスドメインポリシーファイルがあるかどうかをチェックします。サーバーにクロスドメインポリシーファイルが存在しており、そのファイルで SWF ファイルのドメインが許可されている場合、SoundMixer.stopAll() メソッドを使用してロードされたサウンドを停止することができます。許可されていない場合は、停止できません。詳細については、以下を参照してください。
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/flash/9.0_jp/ActionScriptLangRefV3/flash/media/SoundMixer.html