AVAudioPlayer прерывает воспроизведение с помощью audioPlayerDecodeErrorDidOccur, с помощью NSOSStatusErrorDomain -50 - PullRequest
1 голос
/ 07 декабря 2010

В очень специфических, но воспроизводимых случаях я получаю audioPlayerDecodeErrorDidOccur:error: со следующим NSError:

Error Domain=NSOSStatusErrorDomain Code=-50 "The operation couldn’t be completed. (OSStatus error -50.)"

Это происходит в игре, которая также использует OpenAL;мы воспроизводим звуки с помощью OpenAL, но пытаемся использовать аппаратное декодирование AAC.Однако возникновение вышеизложенного никак не связано с тем, что мы делаем в OpenAL.

Это происходит примерно через 2-3 секунды после того, как мы выполняем переключение сцен (игровой режим) - но только с определенными комбинациями эпизодов.Это даже странно, поскольку мы не делаем ничего важного аудио, связанного с этими событиями.Я проверил, что мы ничего не делаем с AVAudioPlayer, но не похоже, чтобы что-то важное было сделано и с OpenAL.

Я попытался решить эту проблему, выпустив AVAudioPlayer и заменивэто с другим, который ссылается на тот же файл, использует тот же объем и возобновляет с того же времени в файле.Однако через несколько секунд этот игрок также выдает вышеупомянутую ошибку.С другой стороны, переход на новую песню создает полностью функциональный проигрыватель, у которого нет проблем.

Мой вопрос: что означает ошибка -50 в этом контексте, или как бы вы поступили?выяснить, что это значит?

(Если это что-то значит, игра должна работать как минимум на iOS 3.1.2).


Мы попытались отключить часть кода OpenAL;это не помогло.

Код аудиобиблиотеки общедоступен на http://libxal.svn.sf.net/svnroot/libxal/trunk/

1 Ответ

1 голос
/ 15 января 2011

Нам удалось что-то испортить на уровне C ++.Это, вероятно, привело к повреждению памяти в AVAudioPlayer без фактического сбоя игры и того же поведения на симуляторе и устройстве.Мы исправили это, и теперь AVAudioPlayer работает.

...