Не слышен звук системы в симуляторе или на устройстве - PullRequest
1 голос
/ 12 августа 2010

Не получается воспроизвести звуки AudioServices для воспроизведения на устройстве или в симуляторе. Вот мой код:

NSString *sndPath = [[NSBundle mainBundle] pathForResource:@"click" ofType:@"aiff"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:sndPath], &soundID);
AudioServicesPlaySystemSound(soundID);
AudioServicesDisposeSystemSoundID(soundID);

Я проверил системные настройки, и да, у меня установлен флажок "Воспроизвести звуковые эффекты пользовательского интерфейса" ... Что я могу делать не так?

Спасибо!

РЕДАКТИРОВАТЬ: я пытаюсь создать звуковой щелчок, когда пользователь перемещает касания по устройству, поэтому мне нужно, чтобы он быстро воспроизводил тот же звук. Должен ли я использовать AVAudioPlayer вместо этого?

1 Ответ

1 голос
/ 12 августа 2010

Не утилизируйте звук до тех пор, пока он не закончит воспроизведение. Вы можете сделать что-то вроде этого:

AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, (AudioServicesSystemSoundCompletionProc)AudioServicesDisposeSystemSoundID, NULL);

Немного странно, поскольку мы предполагаем, что он не использует соглашение о вызовах Pascal (т.е. AudioServicesDisposeSystemSoundID () может обрабатывать дополнительный аргумент NULL).

...