ПРИЛОЖЕНИЯ: Две универсальные 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, чтобы сделать их одноканальными.
Просто для ясности, ошибка не имеет ничего общего с обычными проблемами со звуком (выключение звука, громкость).Часть звуков продолжает играть нормально, но они никогда не будут воспроизводиться снова, пока устройство не будет выключено и перезапущено.
Если у кого-нибудь есть какие-либо идеи, я бы все, я быБуду очень признателен за помощь.Здесь я в конце концов пытаюсь исправить постоянную ошибку, которую я не могу воссоздать, и это, кажется, вызвано чем-то вне моего контроля.