Звук не воспроизводится, когда iPhone спит - PullRequest
2 голосов
/ 11 августа 2009

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

Я создаю приложение, которому нужны звуковые оповещения. Я использую AVAudioPlayer для этой цели.

Я также установил аудиосессию так (в моем основном классе делегатов):

//to play from sleep
OSStatus result = AudioSessionInitialize(NULL, NULL, interruptionListenerCallback, self);
UInt32 category = kAudioSessionCategory_MediaPlayback;
result = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), category);
AudioSessionSetActive(YES); 

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

Обычно через 10 минут я не получаю музыку из своего приложения. Кто-нибудь может сказать мне, что мне не хватает? Пожалуйста, направьте меня, если вы знаете о моей проблеме.


РЕДАКТИРОВАТЬ 1

В настоящее время я использую kAudioSessionCategory_MediaPlayback. Я написал это в своем коде и вставил сюда.


РЕДАКТИРОВАТЬ 2

Я хочу начать воспроизведение аудио со спящего iphone.

Пожалуйста, помогите мне, если знаете.


РЕДАКТИРОВАТЬ 3

idleTimerDisabled, расходовать мою батарею?

Я создаю будильник, чтобы приложение могло работать до 10 часов. Это отключит свет на экране? тогда я могу использовать это. Я уже видел приложение, которое работает на iPhone и воспроизводит музыку из спящего режима.

Позвольте мне попробовать это, спасибо за ответ.

Ответы [ 4 ]

4 голосов
/ 24 декабря 2009

Я нашел ответ уже на SO в этой теме здесь , а также в этой теме на SO .

Происходит то, что iPhone переходит в режим глубокого сна через 10 минут (после блокировки экрана), где он останавливает ваш NSTimer и переходит в режим пониженного энергопотребления. Даже если у вас установлена ​​категория MediaPlayback, она будет делать это, если вы на самом деле не воспроизводите звук. Данное решение заключается в том, чтобы периодически воспроизводить «тихий» звуковой файл, чтобы он не переходил в режим глубокого сна.

Вот что я вижу в журнале консоли во время глубокого сна (предупреждения из моего приложения часов):

Thu Dec 24 09:25:09 unknown Clock[16346] <Warning>: ClockDigital itemInterval=0 curInterval=0 needsUpdate=YES
Thu Dec 24 09:25:09 unknown Clock[16346] <Warning>: BatteryIcon itemInterval=6 curInterval=0 needsUpdate=NO
Thu Dec 24 09:25:09 unknown CommCenter[28] <Notice>: Telling CSI to go low power.
Thu Dec 24 09:25:09 unknown CommCenter[28] <Notice>: CSI can enter low power, so now telling to do so.
Thu Dec 24 09:25:09 unknown CommCenter[28] <Notice>: Will sleep.  Heard from CSI in 0.00501698 seconds
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AppleSynopsysOTGCore::sleepWakeNotification: Sysmtem Going to sleep
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AirPort: Disabled AppleBCMWLAN (link 2, sys 1, user 1)
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AppleBCMWLAN::setPOWER() [kernel_task]: Setting power state to 0
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AppleMultitouchN1SPI: disabled power
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AppleBCMWLAN Left BSS:       @ 0xcf3cc800, BSSID = 00:0f:a3:1c:9f:0c, rssi = -53, rate = 54 (100%), channel =  7, encryption = 0x2, ap = 1, failures =   0, age = 26, ssid[ 8] = "mggm.ap1"
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AirPort: Link Down on en0
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AppleBCMWLAN::powerOff Ready to power off
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AppleBCMWLAN::setPowerStateGated() : Powering Off and sleeping
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AppleBCMWLAN::powerOff Ready to power off
Thu Dec 24 09:25:10 unknown configd[22] <Error>: WiFi:[283368310.000857]: Unable to dispatch message to client dataaccessd (0x10000004)
Thu Dec 24 09:25:10 unknown configd[22] <Error>: WiFi:[283368310.013365]: Unable to dispatch message to client apsd (0x10000004)
Thu Dec 24 09:25:10 unknown Clock[16346] <Warning>: ClockVC: adjusted interval: 0.993291
Thu Dec 24 09:25:10 unknown configd[22] <Error>: WiFi:[283368310.018146]: Error initiating scan request: 82
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: AppleBCMWLAN::setPOWER(): IOKit power off. Discarding request.
Thu Dec 24 09:25:10 unknown Clock[16346] <Warning>: CalendarDay itemInterval=5 curInterval=0 needsUpdate=NO
Thu Dec 24 09:25:10 unknown Clock[16346] <Warning>: BatteryState itemInterval=6 curInterval=0 needsUpdate=NO
Thu Dec 24 09:25:10 unknown Clock[16346] <Warning>: MindfulnessBell itemInterval=2 curInterval=0 needsUpdate=NO
Thu Dec 24 09:25:10 unknown Clock[16346] <Warning>: ClockDigital itemInterval=0 curInterval=0 needsUpdate=YES
Thu Dec 24 09:25:10 unknown Clock[16346] <Warning>: BatteryIcon itemInterval=6 curInterval=0 needsUpdate=NO
Thu Dec 24 09:25:10 unknown kernel[0] <Debug>: System Sleep
0 голосов
/ 08 февраля 2013

Вы должны попробовать это

    [[AVAudioSession sharedInstance] setDelegate: self];
 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive: YES error: nil];

ссылка из учебника на http://www.mindyourcode.com/ios/iphone/how-to-play-audio-in-iphone-sleep-mode/

0 голосов
/ 11 августа 2009

Чтобы предотвратить отключение приложения через n минут, вам также может потребоваться установить для свойства UIApplication 'idleTimerDisabled значение YES.

.
0 голосов
/ 11 августа 2009

Вам необходимо использовать другую категорию аудио сеанса. Вы можете проверить документацию здесь .

Я думаю, вам следует использовать kAudioSessionCategory_MediaPlayback.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...