我有一个 flv 视频文件。 我使用
将该flv文件的二进制数据加载到内存中var myFile:File = File.documentsDirectory.resolvePath("AIR Test/video.flv");
var myFileStream:FileStream = new FileStream();
myFileStream.open(myFile, FileMode.READ);
var **bytes**:ByteArray = new ByteArray();
myFileStream.readBytes(bytes);
myFileStream.close();
现在我想在 bytes 内存变量中更改此加载的 flv 的一些标头,但是更改标头后,更改的标头存储在被覆盖的 bytes 内存变量中。
如何从该内存(bytes内存变量)播放该 flv 文件?
一种选择是将字节保存为临时文件,然后从本地文件系统播放。
// write to temp file
var f:File = File.createTempFile();
var fs:FileStream = new FileStream();
fs.open(f, FileMode.WRITE);
fs.writeBytes(bytes);
fs.close();
// play back
var display:VideoDisplay; // created somehow
display.source = f.url;
不确定一些细节(临时文件是否需要 .flv 扩展名?源 URL 是否需要是本机路径或类似路径?),但该方法应该在 AIR 中有效。