Próbuję utworzyć aplikację, w której będę mógł nagrywać wideo z różnych kamer na urządzeniu podczas nagrywania. Na przykład. Użytkownik naciska przycisk "start record" z przedniej kamery, po 5 sekundach nagrywania użytkownik naciska przycisk "Switch Camera" i aplikacja zmienia źródło wideo z kamery przedniej na tylną i nagrywanie jest kontynuowane. Do aparatu swithcing używam następny kod:Brak synchronizacji audio/wideo po przełączeniu kamery
NSError *error;
AVCaptureDeviceInput *newVideoInput;
AVCaptureDevicePosition currentCameraPosition = [[videoInput device] position];
if (currentCameraPosition == AVCaptureDevicePositionBack)
{
currentCameraPosition = AVCaptureDevicePositionFront;
}
else
{
currentCameraPosition = AVCaptureDevicePositionBack;
}
AVCaptureDevice *backFacingCamera = nil;
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices)
{
if ([device position] == currentCameraPosition)
{
backFacingCamera = device;
}
}
newVideoInput = [[AVCaptureDeviceInput alloc] initWithDevice:backFacingCamera error:&error];
if (newVideoInput != nil)
{
[_captureSession beginConfiguration];
[_captureSession removeInput:videoInput];
if ([_captureSession canAddInput:newVideoInput])
{
[_captureSession addInput:newVideoInput];
videoInput = newVideoInput;
}
else
{
[_captureSession addInput:videoInput];
}
//captureSession.sessionPreset = oriPreset;
[_captureSession commitConfiguration];
}
_inputCamera = backFacingCamera;
Po tym appication zmian wideo sourse i kontynuować pisanie, ale ... audio/wideo z synchronizacją ... Czy ktoś hehp mnie z tym problemem?
Dziękuję.
ten sam problem. – Liron