Flash 在闪存中预加载/缓存MP4数据,以便稍后播放
我希望有人能帮上忙,我能找到一百万页与这个问题无关的内容,但没有一页看起来是直接相关的 我需要将mp4文件加载到Flash/Flex应用程序中,这些文件需要进行预加载和缓存,就像人们可以使用位图数据或声音对象一样——然而,视频类是一个显示对象,NetStream/Connection似乎适合于流媒体,似乎没有一个API可以缓存和保留mp4视频数据(据我所知,appendBytes方法不适用于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和
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视频不支持此方法