Wie können wir den Kamera-Feed effizient von einem iOS-Gerät auf ein anderes über Bluetooth oder WLAN in iOS 7 übertragen? Unten ist Code für Dampfpuffer.So dampfen Sie die Kamera von einem iOS-Gerät mit einem anderen über die Multi-Peer-Konnektivität
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
// Create a UIImage from the sample buffer data
UIImage *image = [self imageFromSampleBuffer:sampleBuffer];
}
// Create a UIImage from sample buffer data
- (UIImage *) imageFromSampleBuffer:(CMSampleBufferRef) sampleBuffer
{
// Get a CMSampleBuffer's Core Video image buffer for the media data
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
// Lock the base address of the pixel buffer
CVPixelBufferLockBaseAddress(imageBuffer, 0);
// Get the number of bytes per row for the pixel buffer
void *baseAddress = CVPixelBufferGetBaseAddress(imageBuffer);
// Get the number of bytes per row for the pixel buffer
size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
// Get the pixel buffer width and height
size_t width = CVPixelBufferGetWidth(imageBuffer);
size_t height = CVPixelBufferGetHeight(imageBuffer);
// Create a device-dependent RGB color space
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
// Create a bitmap graphics context with the sample buffer data
CGContextRef context = CGBitmapContextCreate(baseAddress, width, height, 8,
bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);
// Create a Quartz image from the pixel data in the bitmap graphics context
CGImageRef quartzImage = CGBitmapContextCreateImage(context);
// Unlock the pixel buffer
CVPixelBufferUnlockBaseAddress(imageBuffer,0);
// Free up the context and color space
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
// Create an image object from the Quartz image
UIImage *image = [UIImage imageWithCGImage:quartzImage];
// Release the Quartz image
CGImageRelease(quartzImage);
return (image);
}
hier können wir Bild bekommen, die von iOS-Kamera aufgenommen wird.
Können wir Beispielpufferinformationen direkt an ein anderes Gerät mit Multi-Peer senden oder gibt es eine effiziente Möglichkeit, die Daten auf andere iOS-Geräte zu übertragen?
Vielen Dank.
Multipeer Connectivity klingt wie eine gültige Option. Aber Sie müssen die Leistung überprüfen. Das Senden unkomprimierter Bilder erfordert wahrscheinlich zu viel Bandbreite, sodass Sie wahrscheinlich einen echten Videostream erstellen müssen, um Live-Aufnahmen übertragen zu können. – allprog
Edits müssen 6 Zeichen lang sein, wenn wir also keinen Füller haben, wird dieser Post den Feed ewig dämpfen –
Gute Frage Sandipbhai, Upvoted .. – NSPratik