AudioServicesPlaySystemSound не работает на устройстве iPad

StackOverflow https://stackoverflow.com/questions/4036498

  •  26-09-2019
  •  | 
  •  

Вопрос

Я нахожусь на ранней стадии разработки своего первого приложения для iPad и для простоты до сих пор использовал AudioServicesPlaySystemSound и связанные с ним функции для воспроизведения звуков.Мой код основан на классе SoundEffect из примера Apple Metronome.

Конкретным симптомом является то, что я слышу звуки в симуляторе, но не на устройстве, хотя я подтвердил, что слышу звуки в других приложениях на устройстве.AudioServicesCreateSystemSoundID возвращает действительные идентификаторы звука, поэтому это не так просто, как имя звукового файла, имеющее другой регистр, т.е.«звук.mp3» против.«Звук.mp3».

Я понимаю, что мне, возможно, придется переключиться на другую библиотеку, например OpenAL, по несвязанным причинам, но мне хотелось бы знать, что здесь происходит.У кого-нибудь есть предложения?Есть ли функция, которую я могу вызвать, чтобы получить значение OSStatus или что-то в этом роде?

* BUMP — Последние несколько недель я работал над другими проектами, но сейчас вернулся к этому и был бы очень признателен за ответ.Спасибо.

Это было полезно?

Решение

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

NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"sound" withExtension: @"mp3"] error:&error];
if (error)  {
    NSLog(@"Error creating audio player: %@", [error userInfo]);
} else {
    [audioPlayer play];
}

[audioPlayer release];

Другие советы

Я наткнулся на этот вопрос через поиск Google.Моя проблема точно такая же, как указано в названии этого вопроса:«AudioServicesPlaySystemSound не работает на устройстве iPad».Однако описание проблемы другое.

Проще говоря, после обновления моего iPad до iOS 4.3 перестал работать AudioServicesPlaySystemSound.

Наконец-то я нашел решение своей версии проблемы, так что, надеюсь, это поможет кому-то еще.

Перейдите в приложение «Настройки» на iPad и выберите «Основные».Нажмите «Звуки».Убедитесь, что для параметра «Изменить с помощью кнопок» установлено значение «ВКЛ».Это решит проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top