0

我有五个视频文件,如 video-1.flv、video-2.flv、video-3.flv、video-4.flv、video-5.flv。我阅读了第一个 video-1.flv 并使用以下代码将其存储在 byteArray 中:

private var byteArray = new byteArray();
byteArray = readFile(VIDEO-FILE-PATH);

private function readFile(fileName:String):ByteArray
{
    var data:ByteArray = new ByteArray();
    var inFile:File = File.applicationDirectory; // source folder is application
    inFile = inFile.resolvePath(fileName);  // name of file to read
    var inStream:FileStream = new FileStream();
    inStream.open(inFile, FileMode.READ);
    inStream.readBytes(data, 0, data.length);
    inStream.close();

    return data;
}

现在我想在同一个 byteArray 中读取和存储从 video-2.flv 到 video-5.flv 的下一个视频。

我怎样才能做到这一点。任何代码示例或网络链接将不胜感激。

4

1 回答 1

1

您可以对所有文件使用相同的 byteArray,数据将自动附加,只需将缓冲区传递给readFile方法并删除data.length(在第一次读取时它为 0,因此您读取所有可用数据,在接下来的读数中,这将当然读取新文件所有 previuse 缓冲区的长度)inStream.readBytes(data, 0, data.length);。例子:

var buffer:ByteArray = new ByteArray();
for(var i:int = 1; i < 6; i++)
{
    readFile("video-"+i+".flv", buffer);
}

private function readFile(fileName:String, buffer:ByteArray):ByteArray
{
    var inFile:File = File.applicationDirectory; // source folder is application
    inFile = inFile.resolvePath(fileName);  // name of file to read
    var inStream:FileStream = new FileStream();
    inStream.open(inFile, FileMode.READ);
    inStream.readBytes(buffer);
    inStream.close();

    return buffer;
}
于 2013-01-23T07:41:34.387 回答