OpenAL deja de reproducir aleatoriamente algunos sonidos, solo puede solucionarse con el reinicio

LAS APLICACIONES: dos juegos iOS universales de Cocos2d con una gran base de clientes.

EL PROBLEMA: Varios meses atrás (en 2011) los informes comenzaron a llegar, los sonidos se cortaban random, solo algunos de los sonidos se reproducían en la aplicación, otros no. Este problema SOLO puede solucionarse con un reinicio del dispositivo.

NOTAS IMPORTANTES Y DETALLES:

  • El código SAME y los SAME files de sonido se reproducen bien durante más de un año, SIN NINGÚN informe de errores de este tipo. Me gustaría poder localizar una date, pero creo que el problema comenzó con una actualización de iOS.

  • El error es increíblemente difícil de reproducir. Lo he visto personalmente una vez, pero no he tenido suerte causándolo de nuevo. Sin embargo, recibimos 1-2 correos electrónicos de soporte por día con el mismo problema, algunos de los cuales vienen en forma de malas reseñas. Si tuviera que sacar un número del air, supongo que estamos viendo una incidencia de 1 en 1000. Parece tal vez más común en el iPad, pero no estoy seguro.

  • Reiniciar el dispositivo es la ÚNICA manera de solucionar el problema. Reiniciar la aplicación no hace nada, eliminar la aplicación y volver a instalar no funciona, tiene que apagarse y volverse a encender.

  • Hace unas semanas, en un bash de corregir ciegamente, descargué el motor Cocos2d Sound y cambié una de las aplicaciones a ObjectAL (otro motor de sonido basado en openAL), con la esperanza de que podría haber solucionado el problema. No lo hizo, el mismo problema está ocurriendo. Como se puede ver, ambos son solo interfaces para OpenAL.

  • Los files de sonido se convirtieron de wavs a cafs utilizando el método de recomendación de Apple ( https://developer.apple.com/library/ios/#codinghowtos/AudioAndVideo/_index.html ), aunque también usamos el indicador -c 1 para hacer ellos un solo canal.

  • Solo para que quede claro, el error no tiene nada que ver con los problemas de sonido habituales (interruptor de silencio, volumen). Una parte de los sonidos continúa reproduciéndose bien, pero nunca volverán a reproducirse hasta que el dispositivo se apague y reinicie.

Si alguien tiene alguna idea que yo quisiera, estaría muy agradecido por la ayuda. Estoy en lo cierto terminando aquí tratando de arreglar un error persistente que no puedo volver a crear y que parece ser causado por algo fuera de mi control.

He tenido problemas similares con OpenAL, como afirmaron los comentaristas. Tuvimos problemas espurios en diferentes hardware y en diferentes versiones del sistema operativo. Realmente, era casi imposible de reproducir. La única razón por la que incluso nos enteramos del problema fue el porcentaje significativo de usuarios que experimentaron fallas u otros problemas severos de audio. Intentamos durante meses tratar de hacer que funcione, pero al final los problemas de estabilidad que experimentamos no eran manejables. Terminamos yendo con otra biblioteca y sacamos OpenAL completamente fuera de la image. Ciertamente, no lo recomendaría para nuevos proyectos.