Звук не воспроизводится в iOS - PullRequest
1 голос
/ 26 февраля 2012

Я делаю небольшую игру для iOS и закончила все, кроме звука. Я проверил форматы файлов, пробовал .wav и .aiff, и ни один из них не работает. Связанный код выглядит следующим образом:

.h файл:

#import <AudioToolbox/AudioToolbox.h>

@public SystemSoundID mBeep;
NSString* path;
NSURL* url;

.m файл:

path = [[NSBundle mainBundle]pathForResource:@"hit" ofType:@"wav"];
url = [NSURL URLWithString:path];
AudioServicesCreateSystemSoundID((CFURLRef)url, &mBeep);

AudioServicesPlaySystemSound(mBeep); //Gets called, doesn't play

Если я использую один из недокументированных идентификаторов, например 1103 с AudioServicesPlaySystemSound, этот звук воспроизводится нормально.

Я вполне уверен, что с моими файлами все в порядке, поскольку тот же файл .wav отлично работает на Android, VLC, iTunes и т. Д.

Кто-нибудь знает, что я делаю неправильно?

1 Ответ

6 голосов
/ 06 марта 2012

Наиболее вероятный виновник - кодировка на WAV. Как указано в этом ответе , iOS поддерживает только определенные кодеки, а WAV, который вы пытаетесь воспроизвести, вероятно, использует неподдерживаемый.

Как говорится в этом ответе, самым простым решением будет использование инструмента командной строки afconvert для (без потерь) преобразования вашего WAV в стандартный формат CAF Apple и использования его вместо этого:

afconvert sound1.wav sound1.caf

Еще одна возможность - и реальная проблема, с которой столкнулся ОП - это то, что файл не существует и / или pathForResource не может его успешно найти, что будет указано path, являющимся nil.

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