Как воспроизвести аудио в фоновом режиме в IPhone? - PullRequest
1 голос
/ 02 марта 2012

Я пытаюсь воспроизвести аудиофайл в определенное время, которое я установил. Для этого я добавил аудио в UIBackgroundModes в info.plist и backgroundtaskidentifier в didEnterBackground. Работает в симуляторе, но не в устройстве. чтобы решить это.

Заранее спасибо ...

Ответы [ 2 ]

1 голос
/ 13 февраля 2013

Если я правильно вас понимаю, вы хотите воспроизводить звук в определенное время, независимо от того, активно ли ваше приложение в данный момент и является ли оно приоритетным?Ваш единственный (удобный для просмотра приложения) вариант - запланировать локальное уведомление, как в ответе slf.UIBackgroundModes вам не помогут: режим звукового фона предназначен для разрешения выполнять код в фоновом режиме , только когда вы начинаете воспроизводить аудио, когда вы в фоновом режиме .Примеры использования: музыкальные проигрыватели и радиоприложения.

Если вы объясните свой вариант использования более подробно, у меня может быть лучший ответ.

1 голос
/ 02 марта 2012

Вы можете проверить это справочное приложение с потоковой передачей и фоновым звуком .

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

Пример локального уведомления с прикрепленным звуком. Подробнее здесь .

- (void)applicationDidEnterBackground:(UIApplication *)application {
    NSLog(@"Application entered background state.");
    // bgTask is instance variable
    NSAssert(self->bgTask == UIInvalidBackgroundTask, nil);

    bgTask = [application beginBackgroundTaskWithExpirationHandler: ^{
        dispatch_async(dispatch_get_main_queue(), ^{
            [application endBackgroundTask:self->bgTask];
            self->bgTask = UIInvalidBackgroundTask;
        });
    }];

    dispatch_async(dispatch_get_main_queue(), ^{
        while ([application backgroundTimeRemaining] > 1.0) {
            NSString *friend = [self checkForIncomingChat];
            if (friend) {
                UILocalNotification *localNotif = [[UILocalNotification alloc] init];
                if (localNotif) {
                    localNotif.alertBody = [NSString stringWithFormat:
                        NSLocalizedString(@"%@ has a message for you.", nil), friend];
                    localNotif.alertAction = NSLocalizedString(@"Read Message", nil);
                    localNotif.soundName = @"alarmsound.caf";
                    localNotif.applicationIconBadgeNumber = 1;
                    [application presentLocalNotificationNow:localNotif];
                    [localNotif release];
                    friend = nil;
                    break;
                }
            }
        }
        [application endBackgroundTask:self->bgTask];
        self->bgTask = UIInvalidBackgroundTask;
    });

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