Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
leadro
11 / 0 / 1
Регистрация: 24.10.2012
Сообщений: 8
#1

Переключение камеры во время записи в файл - Программирование iOS

31.01.2013, 04:50. Просмотров 1052. Ответов 12
Метки нет (Все метки)

Всем привет,

Ребят нужна помощь в одной проблеме. Передо мной стоит задача перелючения камери с задней на фронтальную и назад во время записи в файл, при чем, что бы запись продолжалась.
Может ли кто-то посоветовать как такое можно совершить?
Может кто сталкивался с такой задачей и поделиться опытом?

Спасибо за внимание. Очен нужна помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 04:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переключение камеры во время записи в файл (Программирование iOS):

Время сервера и время записи в файл - PHP
Всем привет! Мужики, помогите решить проблему. Есть сайт. При определенных событиях на сайте, нужно писать лог в файл. Время для...

Неизвестная ошибка во время записи в файл - Visual C++
An unknown error occurred while accessing .... а дальше имя файла Ситуация: В диалоге есть CListCtrl в режиме report Читаю с него...

Как заблокировать файл на время чтения/записи? - C++
Как сделать такое? Чтоб другие программы не могли в этот момент писать в этот файл?

Оценить время записи в текстовый файл исходя из системных значений компьютера - VBA
Здравствуйте! Мне нужно просчитать ожидаемое время записи в текстовый файл исходя из системных значений компьютера: - битности, -...

Движение камеры во время кастомизации персонажа - Unity, Unity3D
И так, идея такая: вход в игру - камера пролетала над картой - камера подлетела к определенному месту и тут высвечивается персонаж и к...

Как мне организовать переключение между ОС во время загрузки ПК? - *NIX
Здравствуйте. Я хочу установить 2 ОС на комп (Винду и Хакинтош). Принял решение ставить каждую ОС на отдельный жесткий диск. Подскажите...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Max Patsy
курлык-курлык
85 / 94 / 3
Регистрация: 26.11.2009
Сообщений: 396
Записей в блоге: 1
31.01.2013, 14:43 #2
Думаю тебе это пригодится

http://forum.openframeworks.cc/index.php?topic=6879.0
http://www.cocoachina.com/bbs/read.php?tid-22935.html
leadro
11 / 0 / 1
Регистрация: 24.10.2012
Сообщений: 8
31.01.2013, 15:55  [ТС] #3
Привет,
спасбо за ответ,
очень полезные ссылки и по ним я сделал переключение камери во время записи в файл, Вот код:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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;
и камера переключается на ура, но вот только появилась одна проблемка... после переключения камеры, аудио и видео рассинхронизированы... видео отстает от аудио....
Как можно с таким справиться?
Max Patsy
курлык-курлык
85 / 94 / 3
Регистрация: 26.11.2009
Сообщений: 396
Записей в блоге: 1
31.01.2013, 16:09 #4
даже ничего не могу придумать пока, на стеке советуют паузить сьемку, создавать каждый раз новое видео и потом это склеивать, но это какое-то хреновое решение...
http://stackoverflow.com/questions/1...-switch-camera
leadro
11 / 0 / 1
Регистрация: 24.10.2012
Сообщений: 8
31.01.2013, 16:13  [ТС] #5
то что хреновое это точно...
http://stackoverflow.com/questions/1...-switch-camera -- это мой же вопрос на стека....))
а вот решить этот момент как-то нужно, а то проект по швам расходиться а как решить вопрос не щнаю ((
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
31.01.2013, 16:27 #6
Идея, может быть, и идиотская, но чем черт не шутит...
А что если попробовать сначала добавлять input device в сессию, а только потом старый убивать?
Т.е. сначала [_captureSession addInput:newVideoInput]; а уже потом [_captureSession removeInput:oldVideoInput];
leadro
11 / 0 / 1
Регистрация: 24.10.2012
Сообщений: 8
31.01.2013, 16:49  [ТС] #7
вариант конечно итересный, я по поводу ситуации сначала добавления newVideoInput а потом удаления старого.
Но тут такая слаживается ситуация:
при коде:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[_captureSession beginConfiguration];
        if ([_captureSession canAddInput:newVideoInput])
        {
            [_captureSession addInput:newVideoInput];
            videoInput = newVideoInput;
        }
        else
        {
            [_captureSession addInput:videoInput];
        }
        [_captureSession removeInput:videoInput];
        
        //captureSession.sessionPreset = oriPreset;
        [_captureSession commitConfiguration];
програма не заходит в if, а сразу бежит в else (тобиш сессия не может уже добавить еще один видео инпут), а кода срабатывает метод в else ([_captureSession addInput:videoInput] програма валиться с логом:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** An AVCaptureInput instance may not be added to more than one session'
*** First throw call stack:
(0x3350c2a3 0x3b37597f 0x3269b6b7 0x3269add1 0xbcaf 0x2d5d 0x3b78d11f 0x3b790b97 0x3b78c4b7 0x3b793139 0x3b79117f 0x334dff3b 0x33452ebd 0x33452d49 0x370072eb 0x35368301 0x22f5 0x2258)
libc++abi.dylib: terminate called throwing an exception

При попытке сразу добавить новый видео инпут (без проверки на возможность добавления), код:
Objective-C
1
2
3
4
5
6
7
8
9
[_captureSession beginConfiguration];
        
        [_captureSession addInput:newVideoInput];
        videoInput = newVideoInput;
        [_captureSession removeInput:videoInput];
        
        //captureSession.sessionPreset = oriPreset;
        [_captureSession commitConfiguration];
    }
прога валиться с совсем другим логом:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Multiple audio/video AVCaptureInputs are not currently supported.'
*** First throw call stack:
(0x3350c2a3 0x3b37597f 0x3269b6b7 0x3269add1 0xbc9d 0x2dcd 0x3b78d11f 0x3b790b97 0x3b78c4b7 0x3b793139 0x3b79117f 0x334dff3b 0x33452ebd 0x33452d49 0x370072eb 0x35368301 0x2365 0x22c8)
libc++abi.dylib: terminate called throwing an exception

вот так как-то....
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
31.01.2013, 16:57 #8
Мда, в принципе этого следовало ожидать. Но не попробовать было преступлением
Еще можно попытаться использовать AVAssetWriter. Может, он пошустрее будет.
leadro
11 / 0 / 1
Регистрация: 24.10.2012
Сообщений: 8
31.01.2013, 17:06  [ТС] #9
С AVAssetWriter говоришь.... интересная мысль... а можно как то по подробнее суть идеи и ее реализации?
а то у меня в проекте идет смесь AVAssetWriter и AVCaptureSession, то есть есть возможность разгуляться
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
31.01.2013, 17:24 #10
А нет. Очередная глупость. AVAssetWriterInput ему заменить нельзя. Извиняюсь за флуд
leadro
11 / 0 / 1
Регистрация: 24.10.2012
Сообщений: 8
31.01.2013, 17:27  [ТС] #11
(((( плохо(((
может еще какие идеи есть... а то скоро заказчик пошлет куда подальше(((
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
01.02.2013, 07:03 #12
А зачем подписывались на разработку, если нет представления как делать?)
leadro
11 / 0 / 1
Регистрация: 24.10.2012
Сообщений: 8
01.02.2013, 13:54  [ТС] #13
как розрабатывать проект я знаю, только закажчик фантазирует и с каждним днем придумывает новые фичи которые хочет добавить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2013, 13:54
Привет! Вот еще темы с ответами:

Записи. Дано время t1 и время t2. Определить, сколько времени пройдет от t1 до t2 - C++
Дано время t1 и время t2. Гарантируется, что t1 и t2 -время одного дня, а также что t1<t2. Определить, сколько времени пройдет от t1 до t2....

Скрипт записи видео с камеры - PHP Сети
Помогите нужен скрипт php. К примеру зашол на сайт. В форме обратной связи вел данные, потом нужно такая функция как запись видео(через...

Снимок с веб-камеры сохранить в файл - Visual Basic .NET
Всем привет! Полазив по форуму, к сожалению, нормального решения так и не нашел, везде либо слишком сложно, либо не то, что мне нужно....

Снимок с веб-камеры и сохранение в файл (hd) - VBA
Доброго времени суток. Есть задание: осуществить возможность сохранения снимка с веб-камеры в файл по нажатию на кнопку. Реализовал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.02.2013, 13:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru