2

我有一个 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
  • 在播放之前,声音已满载。

所以有人有什么想法吗?

4

1 回答 1

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);
于 2012-10-09T19:32:53.863 回答