OpenAL случайно перестает воспроизводить некоторые звуки, исправить можно только перезагрузкой.

ПРИЛОЖЕНИЯ: Две универсальные игры Cocos2d для iOS с большой клиентской базой.

ПРОБЛЕМА: Несколько месяцев назад (в 2011 году) начали приходить отчеты, звуки отключались случайным образом, в приложении воспроизводились только некоторые звуки, другие - нет. Эту проблему можно решить ТОЛЬКО перезагрузкой устройства.

ВАЖНЫЕ ЗАМЕЧАНИЯ И ДЕТАЛИ:

  • ОДИН код и ОДИНАКОВЫЕ звуковые файлы воспроизводились нормально более года с НИКАКИХ отчетов об ошибках такого рода. Хотел бы я указать дату, но я считаю, что проблема началась с обновления iOS.

  • Ошибка невероятно сложно воспроизвести. Я лично видел это один раз, но мне не удалось вызвать его снова. Но мы получаем 1-2 поддержка по электронной почте в день с той же проблемой, некоторые из которых приходят в формировать плохие отзывы. Если бы мне пришлось вытащить число из воздуха, я бы Думаю, мы наблюдаем 1 случай из 1000. Кажется, может быть, больше распространено на iPad, но я не уверен.

  • Перезапуск устройства - это ТОЛЬКО способ решения проблемы. Перезапуск приложения ничего не делает, удаляет приложение и переустанавливает ничего не делает, нужно выключить и снова включить.

  • Несколько недель назад, пытаясь вслепую исправить, я сбросил Cocos2d. Sound Engine и переключил одно из приложений на ObjectAL (другое звуковой движок на основе openAL), надеясь, что это решило проблему.Этого не произошло, возникает та же проблема. Как вы могли заметить, оба эти это просто интерфейсы для OpenAL.

  • Сами звуковые файлы были преобразованы из WAV в Cafs с использованием Рекомендуемый Apple метод ( https://developer.apple.com/library/ios/#codinghowtos/AudioAndVideo/_index.html ), хотя мы также использовали флаг -c 1, чтобы сделать их одноканальными.

  • Для ясности, ошибка не имеет ничего общего с обычным звуком. вопросы (выключение звука, громкость). Часть звуков продолжается играет нормально, но они никогда не будут воспроизводиться снова, пока устройство не будет выключен и перезапущен.

Если у кого-то есть идеи, я был бы очень благодарен за помощь. Я нахожусь в конце концов, пытаясь исправить постоянную ошибку, которую я не могу воссоздать и которая, похоже, вызвана чем-то вне моего контроля.

17
задан Mario Sannum 16 August 2013 в 21:56
поделиться