現在、私はAVFoundation
iPhoneカメラからフレームを取得し、それらをに変換してから、他のデバイスに送信するために使用しています UIImage
。NSOutputStream
残念ながら、ある時点で 300 MB に達すると、おそらくメモリが多すぎるためにクラッシュします。
私の質問:これを行うためのより良い方法、またはクラッシュを停止したり、他のデバイスで画像を取得したときのように画像を送信する間の遅延を少なくしたりする他の方法はありますか? または、受信側のデバイスのビデオのようなものをライフストリームのようにすることはできますか?
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
@autoreleasepool {
UIImage *image = [self imageFromSampleBuffer:sampleBuffer];
[_room broadcastChatMessage:image fromUser:@"self"];
dispatch_async(dispatch_get_main_queue(), ^(void){
[_imgView setImage:image];
});
}
// < Add your code here that uses the image >
}