Звук работает в эмуляторе, а не в реальном iPhone - PullRequest
2 голосов
/ 14 января 2010

Имеют несколько коротких звуковых эффектов семплов, которые воспроизводят в эмуляторе, но совсем не в реальном iPhone 3GS. Вот код, примерно как из образца Apple SysSound:

CFBundleRef mb = CFBundleGetMainBundle ();
CFURLRef soundFileURLRef = CFBundleCopyResourceURL
    (mb, CFSTR("mySound"), CFSTR ("caf"), NULL);

SystemSoundID sid;
AudioServicesCreateSystemSoundID(soundFileURLRef, &sid);
AudioServicesPlaySystemSound(sid);

При использовании iPhone я могу слышать щелчки клавиш и музыку из iTunes (не пытаясь использовать их одновременно с воспроизведением звука), но вообще не слышу мой звук. Vibra работает нормально, поэтому даже Framework должен быть настроен правильно.

Пробовал даже пример кода SoundEffect.h / m, без изменений. Используются те же звуковые файлы, но не должен ли быть в порядке CAF, особенно когда он воспроизводится в эмуляторе?

Что я могу попробовать дальше?

Ответы [ 4 ]

2 голосов
/ 04 декабря 2012

Точно так же, как sidenote - у меня была точно такая же проблема, и я потратил, вероятно, около часа на преобразование файлов в правильный формат и т. Д. И все же проблема заключалась в переключении «без звука» на iPad. Так что, хотя громкость была выше, и я мог слышать другие звуки на iPad, потому что переключатель отключения звука был включен, он не воспроизводил системные звуки.

Чтобы добавить путаницу, это приложение использует преобразование текста в речь, и громкость, исходящая из транскрипции, была совершенно прекрасна, я не мог слышать только звуки, исходящие из AudioServicesPlaySystemSound().

2 голосов
/ 14 января 2010

Попробуйте конвертировать в другой формат, такой как wav или mp3, затем воспроизведите снова. Если вы хотите использовать caf, убедитесь, что вы правильно форматируете caf в Terminal.app:

afconvert -f caff -d ima4 mysound.wav
0 голосов
/ 15 января 2010

Нашли более простое решение: используйте звуковые файлы AIF :

  • Нажмите iTunes> Настройки
  • Нажмите на вкладку «Общие»
  • Нажмите кнопку «Импорт настроек»
  • В раскрывающемся списке «Импорт с помощью» выберите «Кодировщик AIFF»
  • Сохраните ваши изменения
  • Выберите ваши звуковые файлы и выберите «Создать версию AIFF»

Вот код, который я использую вместе с SoundEffect.h и SoundEffect.m из образец Apple BubbleLevel :

NSBundle *mainBundle = [NSBundle mainBundle];
buzzerSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"buzzerSound" ofType:@"aif"]];
[buzzerSound play];

Теперь один и тот же код - и звуковые эффекты - работают как в эмуляторе, так и в аппаратном обеспечении . Кстати, не забудьте вернуть исходные настройки iTunes!

0 голосов
/ 14 января 2010

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

...