Hola lilmaster, gracias por el enlace, está bastante bien.
Pero en mi caso, es preferible no utilizar ningún plugin de terceros (requisitos).
Ya he dado con la solución a mi problema. Estaba cargando dos tipos de sources: mp3, ogg; para hacer el audio compatible con distintos navegadores (perdón porque se me olvidó señalar esto).
Después de escribir este tema, probé con el método canPlayType de la api audio, y todos los distintos navegadores me devolvían "maybe", lo cual significa que todo ok.
El problema era que, a veces, el navegador no pillaba el contexto de audio, por lo que necesité un setInterval que hiciera play continuamente, hasta que pillara el contexto audio (audioContext). Una vez que pillaba el contexto, se reproducía bien, y limpiaba ese setInterval. De esta manera, se reproduce bien
Gracias,