Ошибка при попытке воспроизведения звука: 998: сбой при настройке звука, err = -50
Я пытаюсь воспроизвести звук, когда сталкиваются два объекта, и каждый раз получаю эту ошибку. Я тестирую, используя мой iPhone 6. Вот код:
guard soundEffects[sound] == nil else
{
print("Sound effect \(sound) already exists")
return false
}
guard let soundURL = NSBundle.mainBundle().URLForResource(sound, withExtension:format, subdirectory:path) else
{
print("Error creating URL for resource \(sound)")
return false
}
print(soundURL)
var systemID : SystemSoundID = id
soundEffects[sound] = systemID
print(AudioServicesCreateSystemSoundID(soundURL, &systemID))
id += 1
и я пытаюсь играть так:
guard soundEffects[sound] != nil else
{
print("Sound effect '\(sound)' not found")
return false
}
print(soundEffects[sound]!)
AudioServicesPlaySystemSound(soundEffects[sound]!)
Формат файла wav, и я распечатал код метода create, который был 0. Я также не могу найти какую-либо документацию по ошибке на веб-сайте Apple или где-либо еще в Интернете. Я делаю что-то неправильно?
Обновить:
По всей видимости, сохранение значения в словаре и его последующая загрузка являются причиной появления ошибки. Но дело в том, что мне нужен словарь удостоверений личности. Как я должен хранить идентификатор и почему его хранение приводит к ошибке?
1 ответ
Я смог решить мою проблему, выполнив это:
let systemID : SystemSoundID = someUInt32
soundEffects[sound] = systemID
AudioServicesCreateSystemSoundID(soundURL, &soundEffects[sound]!)
AudioServicesPlaySystemSound(soundEffects[sound]!)
Кажется, что объект, над которым метод create выполняет свои действия, - это единственный объект, с которым вы можете вызвать play, поэтому вам нужно выполнить метод create специально для экземпляра словаря (или любого объекта, который вы пытаетесь сохранить в).