2011-12-30 2 views
2

Следующий код должен играть тихий звуковой клип на петле, чтобы сохранить приложение работает в фоновом режиме:Как вы играете звук на петле в фоновом режиме, не прерываясь?

//set sessions .... 
......... 
//play 
audio_player = [[AVAudioPlayer alloc] initWithContentsOfURL: url error:NULL]; 
audio_player.numberOfLoops= -1; //always repeat 
bool ret = [audio_player play]; 

Вы нажимаете кнопку домой, и она играет в фоновом режиме, сохраняя ваше приложение активно.

Однако, когда вы делаете телефонный звонок, игрок останавливается и [audio_player play] вернет false после этого.

Итак, вопрос в том, как в фоновом режиме, как вы предотвращаете воспроизведение AVAudioPlayer от прерывания или разрешаете его возобновлять при прерывании? В противном случае приложение прекратит работу через 10 минут после того, как тихий звуковой контур в последний раз воспроизводится.

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

Может ли кто-нибудь придумать решение для запуска в фоновом режиме, не будучи отвергнутым в App Store?

+0

Как вы проверили, что они действительно работают в фоновом режиме? – tia

+0

Насколько я знаю, ваше приложение не должно останавливаться через десять минут после входа в фон. Прочтите следующие ссылки, которые могут вам помочь. Http://www.iphonedevsdk.com/forum/iphone-sdk-development/9598-avaudioplayer-issue.html https://devforums.apple.com/message/264397#264397 и http://developer.apple.com/library/IOs/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/HandlingAudioInterruptions/HandlingAudioInterruptions.html И приложения таймера не могут сравниваться с аудио-приложениями. –

+0

Это близко к вопросу [iOS 4 Alarm Clock с поддержкой многозадачности] (http://stackoverflow.com/questions/3897946/ios-4-alarm-clock-app-with-multitasking-support), но спрашивает что-то немного отличное от этого. Тем не менее, один или два ответа там могут помочь здесь. –

ответ

1

Ответ один раз, когда ваше приложение находится в фоновом режиме, вы не можете снова открыть аудиоустройство, пока ваше приложение не вернется на передний план.