我正在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();
}
那么在下载文件时如何缓存文件,然后从缓存中访问数据呢?
我知道这离完成一项琐碎的任务还很遥远,因此,如果您什至可以只提供一些教程/文档/文章的链接,我将不胜感激。
最佳答案
您不需要为此缓存声音。
只要声音对象存在于内存中,下载的声音数据就可用。
因此,您需要做的就是将声音对象放在函数范围之外。
播放功能还返回声音使用的当前SoundChannel。
private var snd:Sound = new Sound();
private var channel:SoundChannel;
function openStream( stream ) {
...
channel = snd.play();
}
要实现搜索功能,您可以利用,
关于actionscript-3 - 如何在AS3中缓存音频流数据并访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12721169/