Воспроизведение аудио не работает (AudioToolbox/AudioServices) — iPad 3

У меня есть короткий метод, который воспроизводит звуковое уведомление с использованием библиотеки AudioToolbox/AudioServices (для краткости я удалил большую часть функционального кода):

- (IBAction)thatWasEasy:(id)sender {

    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *filePath = [mainBundle pathForResource:@"easy" ofType:@"mp3"];
    NSURL *aFileURL = [NSURL fileURLWithPath:filePath isDirectory:NO];

    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)aFileURL, &soundID) ;
    AudioServicesPlaySystemSound(soundID);     
}

Звук воспроизводится правильно в симуляторе, а также на устройствах iPad 1 и iPad 2, однако на iPad 3 (версия Verizon LTE) звук не слышен. Я тщательно проверил настройки звука устройства, а также преобразовал тип аудиофайла в wav и caf без каких-либо различий в поведении.

Любые предложения по устранению неполадок немного глубже? У меня, к сожалению, нет другого iPad 3 для сравнения. Цените помощь!


person ninehundreds    schedule 04.09.2012    source источник


Ответы (2)


Догадаться. Когда вы переходите в [Настройки] и выбираете [Звуки] на вкладке [Общие], вы можете убедиться, что уровень громкости вашего звонка и предупреждений выше нуля, и при перемещении ползунка устройство будет издавать звуковой сигнал на новом установленном уровне. Кроме того, вы заметите, что все ваши определенные тоны включены в списке ниже. Вот это меня и сбило с толку при проверке настроек устройства. Я запустил YouTube и другие приложения и смог нормально воспроизводить звук.

Чего я не понимал, пока не поговорил с другим парнем (который немного лучше разбирается в продукте), так это в том, что есть еще один способ отключить системные звуки. При двойном нажатии кнопки с кружком в нижней части экрана появляется панель значков. Если вы перетащите значки вправо пальцем, откроется значок динамика. По какой-то причине это было отключено ... предположительно после того, как я недавно выполнил восстановление системы. Коснитесь ее, чтобы включить звук и вернуться к делу. Не знаю, почему Apple разработала его таким образом, но это было бы полезно (и сэкономило мне несколько часов возни), если бы оно было доступно в настройках устройства.

person ninehundreds    schedule 04.09.2012

Я не думаю, что вы можете воспроизводить mp3-файл на устройстве с помощью AudioServicesPlaySystemSound Документ Apple AudioServicesPlaySystemSound

-(void)playAif:(NSString *)filename {
//  NSLog(@"play: %@", filename);

SystemSoundID soundID;
NSString *path = [[NSBundle mainBundle]
                  pathForResource:filename ofType:@"aif"];    


if (path) { // test for path, to guard against crashes

    UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;    // 1

    AudioSessionSetProperty (
                             kAudioSessionProperty_AudioCategory,                        // 2
                             sizeof (sessionCategory),                                   // 3
                             &sessionCategory                                            // 4
                             );

    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);
    AudioServicesPlaySystemSound (soundID);

}
}
person prashant    schedule 04.09.2012
comment
На самом деле, как только я выяснил расположение этого переключателя звука, я повторно протестировал воспроизведение со всеми тремя типами звука, и они отлично работают. Вы правы, основываясь на документации Apple, но она по-прежнему воспроизводит mp3 без проблем. - person ninehundreds; 04.09.2012
comment
интересно хочу попробовать. Спасибо. - person prashant; 04.09.2012
comment
Я думал, вы знаете, что уровень громкости звонка и предупреждений должен быть выше нуля. - person prashant; 04.09.2012
comment
БЫЛО выше нуля. У меня было установлено среднее значение. Этот параметр не имеет ничего общего с отсутствием воспроизведения звука. - person ninehundreds; 04.09.2012