Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何缓存音频流数据并在AS3中访问它_Actionscript 3_Flash_Caching_Audio_Stream - Fatal编程技术网

Actionscript 3 如何缓存音频流数据并在AS3中访问它

Actionscript 3 如何缓存音频流数据并在AS3中访问它,actionscript-3,flash,caching,audio,stream,Actionscript 3,Flash,Caching,Audio,Stream,我正在用AS3播放MP3文件。一切都很好,我可以玩它,但我期待实现一个'寻找'酒吧。这意味着我需要在下载文件时对其进行缓存,然后在用户查找歌曲中的特定时间时访问缓存的数据 实际播放mp3流的代码: function openStream( stream ) { var s:Sound = new Sound(); var req:URLRequest = new URLRequest(stream); var context:SoundLoaderContext = ne

我正在用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();
}
要实现您可以使用的搜索功能

了解下载了多少声音

要知道当前的声音位置


令人惊叹的那么我可以在内存中存储多少数据呢?有限制吗?比如如果我的声音文件是50-60mb呢?没问题。我们在这里讨论的内存是用户的RAM,这已经足够好了…很抱歉,还有一个问题,但是你能告诉我如何暂停播放,而不删除当前下载的数据吗?s、 关闭将删除当前数据,并且s.pause不存在。有什么想法吗?谢谢