2013-11-09 2 views
0

Я использую Everyplay SDK для записи видео в свою игру. Я наблюдал, когда каждый проигрыватель записывает видео и приложение в фоновом режиме/приостанавливается с помощью домашней кнопки iPhone, Everyplay приостанавливает запись и возобновляет ее, когда приложение возвращается на передний план. Я хочу полностью остановить запись, когда пользователь приостанавливает приложение, и запись не должна начинаться снова, когда вы находитесь на переднем плане.Как отменить запись Everyplay SDK, когда приложение переходит на задний план?

Я зову

[[[Everyplay sharedInstance] capture] stopRecording]; 

при записи и мое приложение получает UIApplicationWillResignActiveNotification, но это не помогает. Everyplay приостанавливает и перезапускает его автоматически, когда активен.

Как я могу полностью остановить запись?

+0

Вы пытались остановить Everyplay в приложении AppDelegateWillResignActive? Это гарантирует, что вызов будет вызван до того, как Everyplay получит UIApplicationWillResignActiveNotification, так как приложения suspend/resume приложения делегируют вызовы перед уведомлениями. –

+0

Нет, я не пробовал. Я пытаюсь остановить запись в контроллере просмотра при получении ** UIApplicationWillResignActiveNotification ** NSNotification. Я собираюсь попробовать это прямо сейчас. –

+0

Хорошо. Я проверил это снова и попытался остановить запись Everyplay в приложении AppDelegateWillResignActive. Результат такой же, i.e запись автоматически возобновляется, когда приложение повторно активируется. –

ответ

0

Кажется, что вам нужно дождаться завершения записи. Вы также должны сделать остановку в вашем приложении AppDelegateWillResignActive.

- (void)applicationWillResignActive:(UIApplication *)application { 
    [[[Everyplay sharedInstance] capture] stopRecording]; 
    while([[[Everyplay sharedInstance] capture] isRecording]) { 
     NSLog(@"Waiting for recording thread to stop."); 
    } 
... 
+0

Я использовал другой подход, как работу вокруг этой проблемы. Я создал NSTimer (продолжительностью 1 секунду), когда мое приложение выходит на передний план и многократно проверяет, запущена ли запись. Если он начинает запись, я останавливаю его явно и отменяет таймер. Если мне нужно начать запись, я заблокирую таймер, если все еще работает, а затем начните запись. Не знаю, хорош или плохой метод, но работает нормально. –

+0

В Allplay 1.7.2 содержатся исправления, связанные с поведением приостановки/возобновления при приостановке. Возможно, больше не требуется петля while или таймера. –

+0

Does Everyplay автоматически отменяет запись, когда приложение переходит в фоновый режим или мне нужно добавить код для этого? Я уже обновил Everyplay SDK до 1.7.2 (не внесли никаких изменений в код), но мой взлом таймера все еще выдает возобновленную запись. –