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

SoundChannel  - AS3

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

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

SoundChannel クラスはアプリケーション内でサウンドを制御します。サウンドはすべてサウンドチャンネルに割り当てられます。アプリケーションでは、複数のチャンネルを組み合わせて使用することができます。 SoundChannel クラスには、stop() メソッド、チャンネルの振幅(ボリューム)を監視するためのプロパティ、および SoundTransform オブジェクトをチャンネルに割り当てるためのプロパティがあります。

例を表示

関連する API エレメント



パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。
Object
  leftPeak : Number
[読み取り専用] 左チャンネルの現在の振幅(ボリューム)、0(無音)~ 1(完全な振幅)です。
SoundChannel
  position : Number
[読み取り専用] サウンドの再生中、position プロパティは、サウンドファイル内で再生されている現在のポイント(ミリ秒単位)を示します。
SoundChannel
  rightPeak : Number
[読み取り専用] 右チャンネルの現在の振幅(ボリューム)、0(無音)~ 1(完全な振幅)です。
SoundChannel
  soundTransform : flash.media:SoundTransform
サウンドチャンネルに割り当てられた SoundTransform オブジェクトです。
SoundChannel
パブリックメソッド
 メソッド定義元
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
チャンネルで再生しているサウンドを停止します。
SoundChannel
 Inherited
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
 Inherited[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
  サウンドの再生が終了したときに送出されます。SoundChannel
プロパティの詳細

leftPeak

プロパティ
leftPeak:Number  [読み取り専用]

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

左チャンネルの現在の振幅(ボリューム)、0(無音)~ 1(完全な振幅)です。



実装
    public function get leftPeak():Number

position

プロパティ 
position:Number  [読み取り専用]

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

サウンドの再生中、position プロパティは、サウンドファイル内で再生されている現在のポイント(ミリ秒単位)を示します。サウンドを停止または一時停止すると、position プロパティはサウンドファイル内で再生された最後のポイントを示します。

一般的な使用方法は、サウンドを停止したときに position プロパティの値を保存することです。その保存した位置からサウンドを再起動して、後でサウンドを再開できます。

サウンドをループしている場合、サウンド位置は各ループの最初に 0 にリセットされます。



実装
    public function get position():Number

rightPeak

プロパティ 
rightPeak:Number  [読み取り専用]

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

右チャンネルの現在の振幅(ボリューム)、0(無音)~ 1(完全な振幅)です。



実装
    public function get rightPeak():Number

soundTransform

プロパティ 
soundTransform:flash.media:SoundTransform

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

サウンドチャンネルに割り当てられた SoundTransform オブジェクトです。SoundTransform オブジェクトには、ボリューム、パン、左スピーカーの割り当て、および右スピーカーの割り当てを設定するプロパティが含まれます。



実装
    public function get soundTransform():flash.media:SoundTransform
    public function set soundTransform(value:flash.media:SoundTransform):void

関連する API エレメント

メソッドの詳細

stop

()メソッド
public function stop():void

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

チャンネルで再生しているサウンドを停止します。


例  ( この例の使用方法 )

次の例では、ユーザーがサウンドファイルを一時停止および再生できます。

コンストラクターで、サウンドファイルがロードされます。(この例では、ファイルが SWF ファイルと同じディレクトリにあると想定しています。)ユーザーがサウンドの再生または一時停止を実行するボタンとして、テキストフィールドが使用されます。ユーザーが button テキストフィールドを選択すると、clickHandler() メソッドが呼び出されます。

clickHandler() メソッドで、ユーザーが初めてテキストフィールドを選択したときに、サウンドが再生するように設定され、サウンドチャンネルに割り当てられます。 次に、ユーザーが一時停止するテキストフィールドを選択すると、サウンドが再生を停止します。 サウンドチャンネルの position プロパティは、停止時のサウンドの位置を記録します。このプロパティを使用して、ユーザーがテキストフィールドを選択して再生を再開した後、その位置でサウンドが再開されます。 Sound.play() メソッドが呼び出されるたびに、新しい SoundChannel オブジェクトが作成され、channel 変数に割り当てられます。サウンドチャンネルの stop() メソッドを使用してサウンドを一時停止するためには、Sound オブジェクトを SoundChannel オブジェクトに割り当てる必要があります。

package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.events.MouseEvent;
    import flash.text.TextFieldAutoSize;
            
    public class SoundChannel_stopExample extends Sprite {
        private var snd:Sound = new Sound();
        private var channel:SoundChannel = new SoundChannel();
        private var button:TextField = new TextField();

        public function SoundChannel_stopExample() {
            var req:URLRequest = new URLRequest("MySound.mp3");
            snd.load(req);
            
            button.x = 10;
            button.y = 10;
            button.text = "PLAY";
            button.border = true;
            button.background = true;
            button.selectable = false;
            button.autoSize = TextFieldAutoSize.CENTER;

            button.addEventListener(MouseEvent.CLICK, clickHandler);

            this.addChild(button);
        }

        private function clickHandler(e:MouseEvent):void {
            var pausePosition:int = channel.position;

            if(button.text == "PLAY") {
                channel = snd.play(pausePosition);
                button.text = "PAUSE";
            } 
            else {
                channel.stop();
                button.text = "PLAY";
            }
        }
    }
}
イベントの詳細

soundComplete

イベント
イベントオブジェクトの型: flash.events.Event
プロパティ Event.type = flash.events.Event.SOUND_COMPLETE

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

サウンドの再生が終了したときに送出されます。

Event.SOUND_COMPLETE 定数は、type プロパティ(soundComplete イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetサウンドの再生が終了した SoundChannel オブジェクトです。

例  ( この例の使用方法 )

次の例では、ユーザーが再生リストから曲を選択し、「再生」を選択して、選択した順序で曲を再生します。

コンストラクターには、テキストフィールドが定義され、曲リスト、および再生を選択するための行が保持されます。(通常、曲の再生にはボタンが使用され、曲リストにはリストボックスが使用されます。)選択された曲の行の書式をイタリックに変更するテキストフォーマットオブジェクトが定義されます。ユーザーがテキストフィールドを選択すると、clickHandler() メソッドが呼び出されます。

clickHandler() メソッドでは、テキストフィールドオブジェクトの getLineIndexAtPoint() メソッドによってユーザーが選択した行のインデックスが返されます。 行のインデックスを使用して、getLineText() メソッドによってテキストの内容が取得されます。次に、if ステートメントで、ユーザーが曲の再生と再生リストへの追加のいずれを選択したかがチェックされます。 ユーザーが再生を選択し、曲が選択された場合、マウスのクリックに対するイベントリスナーが削除され、playNext() メソッドが呼び出されて、曲の再生が開始されます。ユーザーが曲のタイトルを選択した場合、行の内容が songList 配列に追加され、行の書式がイタリックに設定されます。

playNext() メソッドによって配列リストが反復処理され、各曲がロードおよび再生されます。曲のサウンドチャンネルへの割り当ても行われます。曲の再生が終了し、Event.SOUND_COMPLETE イベントが送出されるときに応答するために、そのサウンドチャンネルに対するイベントリスナーが追加されます。次に、soundCompleteHandler() メソッドによって playNext() メソッドが呼び出され、次の曲が再生されます。この処理は、配列にリストされたすべての曲の再生が完了するまで続行します。

package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.MouseEvent;
    import flash.text.TextFormat;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.events.IOErrorEvent;

    public class SoundChannel_event_soundCompleteExample extends Sprite {
        private var channel:SoundChannel = new SoundChannel();
        private var songList:Array = new Array();
        private var listTextField:TextField = new TextField();
        private var songFormat:TextFormat = new TextFormat();
        private var arrayIndex:int = 0;
        private var songSelected:Boolean = false;
        
        public function SoundChannel_event_soundCompleteExample() {
            
            listTextField.autoSize = TextFieldAutoSize.LEFT;
            listTextField.border = true
            listTextField.background = true;
            listTextField.text = "Song1.mp3\n" + "Song2.mp3\n" 
                                + "Song3.mp3\n" + "Song4.mp3\n" + "PLAY";
        
            songFormat.italic = true;
 
            listTextField.addEventListener(MouseEvent.CLICK, clickHandler);
                        
            addChild(listTextField);
        }
        
        private function clickHandler(e:MouseEvent):void {
            var index:int = listTextField.getLineIndexAtPoint(e.localX, e.localY);
            var line:String = listTextField.getLineText(index);
            var firstIndex:uint = listTextField.getLineOffset(index);
            var playLine:uint = listTextField.numLines - 1;

                if((index == playLine) && (songSelected == true)) {
                    listTextField.removeEventListener(MouseEvent.CLICK, clickHandler);
                    playNext();       

                } else if (index != playLine) {
                     songList.push(line.substr(0, (line.length - 1)));
                     listTextField.setTextFormat(songFormat, firstIndex, 
                                (firstIndex + listTextField.getLineLength(index)));     
                    songSelected = true;
                 }
        }

        private function playNext():void {
 
             if(arrayIndex < songList.length) {
                var snd:Sound = new Sound();
                snd.load(new URLRequest(songList[arrayIndex]));
                channel = snd.play();
                
                channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
                arrayIndex++;
 
            } else {
                songSelected = false;
                    
                while(arrayIndex > 0) {
                    songList.pop();
                    arrayIndex--;
                }
            }
        }    

        private function soundCompleteHandler(e:Event):void {
            playNext();
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            trace(errorEvent.text);
        }
    }
}
SoundChannelExample.as

次の例では MP3 ファイルがロードされて再生され、それによって発生するサウンドイベントに関する情報が表示されます。Timer オブジェクトによって、再生ヘッドの位置に関する更新情報が、50 ミリ秒ごとに提供されます。この例を実行するには、MySound.mp3 ファイルを SWF ファイルと同じディレクトリに配置します。
package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLRequest;
    import flash.utils.Timer;

    public class SoundChannelExample extends Sprite {
        private var url:String = "MySound.mp3";
        private var soundFactory:Sound;
        private var channel:SoundChannel;
        private var positionTimer:Timer;

        public function SoundChannelExample() {
            var request:URLRequest = new URLRequest(url);
            soundFactory = new Sound();
            soundFactory.addEventListener(Event.COMPLETE, completeHandler);
            soundFactory.addEventListener(Event.ID3, id3Handler);
            soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            soundFactory.load(request);

            channel = soundFactory.play();
            channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);

            positionTimer = new Timer(50);
            positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler);
            positionTimer.start();
        }
        

        private function positionTimerHandler(event:TimerEvent):void {
            trace("positionTimerHandler: " + channel.position.toFixed(2));
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function id3Handler(event:Event):void {
            trace("id3Handler: " + event);
        }

        private function ioErrorHandler(event:Event):void {
            trace("ioErrorHandler: " + event);
            positionTimer.stop();       
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: " + event);
        }

        private function soundCompleteHandler(event:Event):void {
            trace("soundCompleteHandler: " + event);
            positionTimer.stop();
        }
    }
}




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

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