0

我在标准的 apache 服务器上托管了一个长 mp3 文件(到目前为止 30 分钟,但我希望它也能处理更长的声音)。

我想在指定点开始播放此音频。

在尝试使用 Flash Actionscript 3 时,我的基本测试表明,从开始到我选择的位置的所有音频在播放之前都被缓冲(Sound.bytesLoaded 是我的朋友)。如果我开始一秒,开始播放大约需要 3 秒,30 秒,大约需要 25 秒。显然,对于一个非常长的 mp3,比如跳到 3 小时有声读物的中间播放,这是不切实际的。

这是我正在使用的 ActionScript 3.0 代码:

button.addEventListener(MouseEvent.MOUSE_DOWN, function():void {
 var s:Sound = new Sound(); 
 var req:URLRequest = new URLRequest("http://example.com/audio.mp3"); 
 s.load(req); 
 s.play(30 * 60 * 1000); // start 30 seconds in.
} 
);

任何人都知道这在 Flash 中是否可行?

如果没有,是否甚至可以在不安装任何服务器端解决方案的情况下从网页执行此操作?

非常感谢。

4

1 回答 1

1

据我了解,这是通过 HTTP 与流媒体定期“渐进式下载”的问题。

在标准设置中,常规 HTTP 服务器和 Flash Player 无法跳过 mp3 或视频的部分内容,必须先下载到该点的所有数据,如您所述。

启用跳过/搜索的一种方法是使用流媒体服务器,如 Adob​​e 的Flash Media Streaming Server或开源替代品Red5来提供 mp3。

但也有一些方法可以在 HTTP 服务器上设置所谓的“伪流”:

http://flowplayer.org/plugins/streaming/pseudostreaming.html

于 2010-11-21T18:19:36.913 回答