1

我在 AS3 中流式传输 MP3 文件。一切正常(我可以玩),但我希望实现一个“搜索”栏。这意味着我需要缓存文件(因为它正在被下载),然后当用户在歌曲中寻找特定时间时访问缓存的数据。

实际播放 mp3 流的代码:

function openStream( stream )
{
    var s:Sound = new Sound();
    var req:URLRequest = new URLRequest(stream);
    var context:SoundLoaderContext = new SoundLoaderContext(500, true);
    s.load(req, context);
    s.play();

}

那么如何在下载文件时缓存文件,然后从缓存中访问数据?

我知道这远非一项微不足道的任务,所以如果您能提供一些教程/文档/文章的链接,我将不胜感激。

4

1 回答 1

0

您不需要为此缓存声音。

只要声音对象存在于内存中,下载的声音数据就可用。

因此,您需要做的就是将函数外部的声音对象带入类范围。

play 函数还返回 Sound 使用的当前 SoundChannel。

private var snd:Sound = new Sound();
private var channel:SoundChannel;

function openStream( stream ) { 

     ... 

     channel = snd.play();
}

要实现您可以使用的搜索功能,

于 2012-10-04T06:33:38.227 回答