OpenAL случайным образом останавливает воспроизведение некоторых звуков, может исправить только после перезагрузки - PullRequest
16 голосов
/ 22 февраля 2012

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

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

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

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

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

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

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

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

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

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

1 Ответ

2 голосов
/ 31 августа 2013

У меня были подобные проблемы с OpenAL, как заявили комментаторы.У нас были ложные проблемы на другом оборудовании и на разных выпусках ОС.Действительно, это было почти невозможно воспроизвести.Единственной причиной, по которой мы даже узнали о проблеме, был значительный процент пользователей, которые испытали сбои или другие серьезные проблемы со звуком.Мы месяцами пытались заставить его работать, но в конце концов проблемы со стабильностью, с которыми мы столкнулись, оказались просто неуправляемыми.В итоге мы пошли с другой библиотекой и полностью удалили OpenAL.Я, конечно, не рекомендовал бы это для новых проектов.

...