Flash Actionscript 3 - 声音寻找/播放

时间:2012-10-08 13:20:54

标签: actionscript-3 actionscript

我有一个4小时的音频文件。我创建了一个标准的播放器来管理我的需求 - 工作正常,但你不会在位置数玩家停止时寻求超过12180000毫秒。如果您将声音定位为播放12100000(早期几秒) - 播放正常,如果计数播放而不通过代码更改位置,则直到结束都是好的。我没有收到任何关于此类问题的错误或任何信息。

soundChannel = sound.play(12180000); // DOES NOT PLAY, NO ERRORS
soundChannel = sound.play(12100000); // PLAYS FINE, AND CONTINUES TO PLAY TILL THE END
  • 播放前声音已满载。

所以有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

这很有趣......我无法让它过去12173943 milliseconds。对我来说,它确实可以达到那个确切的数字,但在此之后的任何事情都不会发挥作用。我的猜测是闪存为声音分配了一定数量的内存,而那个数字正好计算到分配给该文件的最大内存量。希望其他人可以加入。我正在使用Rummer提供的MP3,这是我的测试代码

import flash.media.*;
import flash.events.*;
import flash.net.*;

var channel:SoundChannel = new SoundChannel();
var sound:Sound = new Sound();
sound.load(new URLRequest("podcast.mp3"));
sound.addEventListener(Event.COMPLETE, soundLoaded);
sound.addEventListener(IOErrorEvent.IO_ERROR, onError);

function soundLoaded(e:Event):void
{
    channel = sound.play(12173943);
}

function onError(e:IOErrorEvent):void
{
    trace(e);
}

我正在使用Flash CS5.5并导出为Flash 10.2。我会高度考虑将你的mp3分成几部分。我的SWF第一次加载,因为mp3的大小,它在播放前闪烁了10秒钟。

=============== AS2版本可行

var my_sound:Sound = new Sound();
my_sound.onLoad = function(success:Boolean)
{
    if (success)
    {
        my_sound.start(12180);
    } 
};
my_sound.loadSound("podcast.mp3", true);