目标:用于AVCaptureMovieFileOutput
将视频录制到 .mov 文件。在录制视频时,我想将其上传到 S3。上传部分应该是可行的多部分上传。(Mac OS X +10.8 应用程序)
问题:我如何从块中读取 .mov 文件,而文件正在被写入AVCaptureMovieFileOutput
并不断增大?
到目前为止我做了什么:
// session = AVCaptureSession with audio and video inputs
fileOutput = [[AVCaptureSession alloc] init];
[session addOutput:fileOutput]
[session startRunning]
[fileOutput startRecordingToOutputFileURL: fileUrl recordingDelegate:self]
// In async dispatch queue
inputStream = [NSInputStream inputStreamWithFileAtPath:fileUrl]
// schedule in run loop, open and run
此时我开始stream:handleEvent:
在委托对象上接收消息NSStreamEventHasBytesAvailable
。但是几秒钟后,消息停止进入(在 250.000-300.000 字节 (0.2MB) 的总字节数之后)即使 .mov 文件的大小增长到 >10MB,也会发生这种情况。
问题:
为什么
NSInputStream
委托不继续接收流事件?最初可用的数据是否不可靠?
这总体上是一种可行的方法吗?还是有另一种方法可以实现我想要的?
谢谢!