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
Flash 在闪存中预加载/缓存MP4数据,以便稍后播放_Flash_Apache Flex_Caching_Video_Mp4 - Fatal编程技术网

Flash 在闪存中预加载/缓存MP4数据,以便稍后播放

Flash 在闪存中预加载/缓存MP4数据,以便稍后播放,flash,apache-flex,caching,video,mp4,Flash,Apache Flex,Caching,Video,Mp4,我希望有人能帮上忙,我能找到一百万页与这个问题无关的内容,但没有一页看起来是直接相关的 我需要将mp4文件加载到Flash/Flex应用程序中,这些文件需要进行预加载和缓存,就像人们可以使用位图数据或声音对象一样——然而,视频类是一个显示对象,NetStream/Connection似乎适合于流媒体,似乎没有一个API可以缓存和保留mp4视频数据(据我所知,appendBytes方法不适用于mp4!)-加载数据的唯一方法是play(),这不是我在加载时想要做的 由于这个原因,NetStream和

我希望有人能帮上忙,我能找到一百万页与这个问题无关的内容,但没有一页看起来是直接相关的

我需要将mp4文件加载到Flash/Flex应用程序中,这些文件需要进行预加载和缓存,就像人们可以使用位图数据或声音对象一样——然而,视频类是一个显示对象,NetStream/Connection似乎适合于流媒体,似乎没有一个API可以缓存和保留mp4视频数据(据我所知,appendBytes方法不适用于mp4!)-加载数据的唯一方法是
play()
,这不是我在加载时想要做的

由于这个原因,NetStream和NetConnection似乎没有多大用处,因为它们是用于实时流媒体的。有没有办法使用URLLoader加载mp4二进制数据 并在以后将其附加到视频对象,而不必使用这些类


提前感谢,我对此有点生气!

我强烈建议不要这样做。您提到的缓存正在将视频保存到内存中。视频变得非常大(例如,我为应用程序准备的720x480,3分钟的视频是100MB)你真的不应该将这些类型的内容保存到内存中。简言之,你会面临内存不足的风险。现在,如果你使用的是Adobe AIR,你可以将视频保存到磁盘上。但你不想在没有用户许可的情况下这样做(同样,占用大量磁盘空间通常是不好的)视频永远不会是高分辨率或长视频,每个视频不会超过几Mb,一次视频也不会超过六个。但是,当我需要触发它们时,我确实需要它们立即触发,并且可以毫不延迟地擦洗,所以我确实需要这样做。那么,使用
urloader
,下载文件将是一条可行的途径,将数据保存到保存在某处的
ByteArray
中,可能使用静态变量,这样它就不会被垃圾收集。然后使用
appendBytes()
。根据文档,它应该在除iOS以外的所有平台上都能在h.264上工作。如果这是针对iOS的,我想你可能运气不好,不得不求助于流媒体。我还没有尝试过这一点,但看到一些评论说,这在MP4数据中是不可能的……你知道这是否只适用于iOS?我会尝试设置一个t在任何情况下都不支持est案例……”注:iOS版AIR 3.0中的H.264视频不支持此方法