w jaki sposób możemy wydajnie przesyłać pliki z kamer z jednego urządzenia z systemem iOS do innego przy użyciu technologii Bluetooth lub Wi-Fi w systemie iOS 7. Poniżej znajduje się kod do uzyskania bufora parowego.Sposób parowania kamery z jednego urządzenia z systemem iOS na inny przy użyciu połączenia z wieloma urządzeniami równorzędnymi
- (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);
}
tutaj możemy uzyskać obraz, który jest przechwytywany przez kamerę iOS.
Czy możemy przesłać informacje o buforze próbki bezpośrednio do innego urządzenia za pomocą multi-peera lub czy istnieje skuteczny sposób na parowanie danych na inne urządzenia z systemem iOS?
Dziękuję.
Łączność wielościenna brzmi jak ważna opcja. Ale musisz sprawdzić wydajność. Wysyłanie nieskompresowanych obrazów prawdopodobnie będzie wymagać zbyt dużej przepustowości, więc prawdopodobnie będziesz musiał utworzyć prawdziwy strumień wideo, aby móc przesłać na żywo. – allprog
Edycja musi składać się z 6 znaków, więc jeśli nie znajdziemy wypełniacza, ten post będzie wiecznie parował kanał –
Dobre pytanie Sandipbhai, Upvoted .. – NSPratik