| window.runtime 属性 | window.runtime.flash.media.SoundChannel |
| 继承 | SoundChannel EventDispatcher Object |
| 运行时版本: | 1.0 |
stop() 方法、用于监控声道幅度(音量)的属性以及用于对声道指定 SoundTransform 对象的属性。
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| leftPeak : Number [只读 (read-only)]
左声道的当前幅度(音量),范围从 0(静音)至 1(最大幅度)。 | SoundChannel | ||
| position : Number [只读 (read-only)]
当播放声音时,position 属性指示声音文件中当前播放的位置(以毫秒为单位)。 | SoundChannel | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| rightPeak : Number [只读 (read-only)]
右声道的当前幅度(音量),范围从 0(静音)至 1(最大幅度)。 | SoundChannel | ||
| soundTransform : SoundTransform
分配给该声道的 SoundTransform 对象。 | SoundChannel | ||
| 方法 | 定义方 | ||
|---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | |
![]() |
将事件调度到事件流中。 | EventDispatcher | |
![]() |
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
stop():void
停止在该声道中播放声音。 | SoundChannel | ||
![]() | toString():String
返回指定对象的字符串表示形式。 | Object | |
![]() | valueOf():Object
返回指定对象的原始值。 | Object | |
![]() |
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| 事件 | 摘要 | 定义方 | ||
|---|---|---|---|---|
![]() | [广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | ||
![]() | [广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | ||
| 在声音完成播放后调度。 | SoundChannel | |||
| leftPeak | 属性 |
| position | 属性 |
position:Number [只读 (read-only)] | 运行时版本: | 1.0 |
当播放声音时,position 属性指示声音文件中当前播放的位置(以毫秒为单位)。当停止或暂停播放声音时,position 属性指示声音文件中上次播放的位置。
一种常见使用情形是,在停止播放声音时保存 position 属性的值。以后,您可以从保存的位置重新开始以恢复播放声音。
如果循环播放声音,则在每次循环开始时,将 position 重置为 0。
| rightPeak | 属性 |
| soundTransform | 属性 |
soundTransform:SoundTransform| 运行时版本: | 1.0 |
分配给该声道的 SoundTransform 对象。SoundTransform 对象包含用于设置音量、平移、左扬声器指定和右扬声器指定的属性。
另请参见
| stop | () | 方法 |
function stop():void| 运行时版本: | 1.0 |
停止在该声道中播放声音。
在 init() 函数中,加载了该声音文件。当用户单击“Play”(播放)按钮时,将调用 clickHandler() 方法。
在 clickHandler() 函数中,当用户第一次单击该按钮时,会将声音设置为播放并将声音分配给声道。然后,当用户再次单击该按钮时,则会将声音设置为暂停,声音将停止播放。声道的 position 属性记录声音停止时的位置。此数字用于在用户单击该按钮以重新开始播放后从该位置开始恢复播放声音。每次调用 Sound.play() 方法时,将创建一个新的 SoundChannel 对象并将其分配给 channel 变量。将 Sound 对象的 play 方法的结果分配给 SoundChannel 对象,以使用声道的 stop() 方法暂停声音。
<html>
<head>
<script src="AIRAliases.js" />
<script>
var sound = new air.Sound();
var button;
var channel;
var pausePosition = 0;
function init()
{
var req = new air.URLRequest("test.mp3");
sound.load(req);
button = document.getElementById("playButton");
}
function clickHandler() {
if (button.value == "Play")
{
channel = sound.play(pausePosition);
button.value = "Pause";
}
else
{
pausePosition = channel.position;
channel.stop();
button.value = "Play";
}
}
</script>
</head>
<body onload='init()'>
<input type="button" id="playButton" value="Play" onclick="clickHandler()"/>
</body>
</html>
| soundComplete | 事件 |
flash.events.Eventflash.events.Event.SOUND_COMPLETE| 运行时版本: | 1.0 |
在声音完成播放后调度。
Event.SOUND_COMPLETE 常量定义 soundComplete 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 其中声音已播放完毕的 SoundChannel 对象。 |
mp3Array 数组定义要播放的声音文件。playNext() 函数播放数组中的下一个 MP3 文件。完成声音播放后,声音将调度 soundComplete 事件。该事件处理函数调用 playNext() 函数以播放下一种声音(如果有)。
<html>
<head>
<script src="AIRAliases.js" />
<script>
var mp3Array = ["test1.mp3", "test2.mp3"];
var index = 0;
var nowPlayingText;
function init()
{
nowPlayingText = document.getElementById("nowPlayingText");
playNext();
}
function playNext()
{
if(index < mp3Array.length)
{
var snd = new air.Sound();
snd.load(new air.URLRequest(mp3Array[index]));
channel = snd.play();
channel.addEventListener(air.Event.SOUND_COMPLETE, soundCompleteHandler);
nowPlayingText.value = mp3Array[index];
index++;
}
else
{
nowPlayingText.value = "";
}
}
function soundCompleteHandler(event)
{
playNext();
}
function errorHandler(errorEvent)
{
air.trace(errorEvent.text);
}
</script>
</head>
<body onload='init()'>
Now playing:
<p> <input type="text" id="nowPlayingText" width="200" /> </p>
</body>
</html>
注意:要测试此示例,请执行以下操作:
<html>
<head>
<script src="AIRAliases.js" />
<script>
function init()
{
var request = new air.URLRequest("test.mp3");
var sound = new air.Sound();
sound.addEventListener(air.Event.COMPLETE, completeHandler);
sound.addEventListener(air.Event.ID3, id3Handler);
sound.addEventListener(air.IOErrorEvent.IO_ERROR, ioErrorHandler);
sound.addEventListener(air.ProgressEvent.PROGRESS, progressHandler);
sound.load(request);
channel = sound.play();
channel.addEventListener(air.Event.SOUND_COMPLETE, soundCompleteHandler);
positionTimer = new air.Timer(1000);
positionTimer.addEventListener(air.TimerEvent.TIMER, positionTimerHandler);
positionTimer.start();
}
function positionTimerHandler(event)
{
air.trace("positionTimerHandler: " + channel.position.toFixed(2));
}
function completeHandler(event)
{
air.trace("completeHandler: " + event);
}
function id3Handler(event)
{
air.trace("id3Handler: " + event);
}
function ioErrorHandler(event)
{
air.trace("ioErrorHandler: " + event);
positionTimer.stop();
}
function progressHandler(event)
{
air.trace("progressHandler: " + event);
}
function soundCompleteHandler(event)
{
air.trace("soundCompleteHandler: " + event);
positionTimer.stop();
}
</script>
</head>
<body onload='init()'>
</body>
</html>