代码之家  ›  专栏  ›  技术社区  ›  Ben Clayton

HTML:如何从URL mid文件开始声音播放,而不将所有声音数据缓冲到该点

  •  0
  • Ben Clayton  · 技术社区  · 14 年前

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

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

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

    下面是我正在使用的ActionScript3.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中是否可行吗?

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

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Lars Blåsjö    14 年前

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

    在标准设置中,常规的HTTP服务器和Flash播放器不能跳过mp3或视频的某个部分,必须先下载到该点的所有数据,如您所述。

    启用skiping/seeking的一种方法是使用像Adobe这样的流式服务器 Flash Media Streaming Server 或者开源的替代方案 Red5 为mp3服务。

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

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

    推荐文章