2011-02-28 13 views
6

He configurado un objeto AVAudioPlayer en viewDidLoad, según las directrices de Apple, llamando a prepareToPlay como la última línea en viewDidLoad (lo he intentado en awakeFromNib también).Demo de AVAudioPlayer al llamar play

Cuando presiono mi botón de reproducción, hay una pausa, ya que parece que cargará el archivo, luego se reproduce.

En audioPlayerDidFinishPlaying, vuelvo a cargar el reproductor con un sonido diferente, y al hacer clic en reproducir por segunda vez, el archivo se reproduce al instante.

¿Qué causaría que el jugador se quedara en la primera jugada?

Gracias.

Respuesta

-1

¿Qué tipo de sonido estás jugando? Alertas, algo mas? Si alertas, hice ir por este camino y es mucho mejor con retardos ...

  • crear el sonido del sistema de sonido con sistema de AudioServicesCreateSystemSoundID
  • sonido sistema de juego con AudioServicesPlaySystemSound
  • disponer con AudioServicesDisposeSystemSoundID

... solo necesita almacenar SystemSoundID por cada sonido que le gustaría tocar.

0

El sistema de audio se ejecuta en varios procesos de software asíncrono (unidades de audio, controladores de sistema operativo, etc.) y sistemas de hardware (DMA, DAC, fuentes de alimentación de amplificador de audio, etc.) que nunca finalizan completamente la inicialización En realidad, se reproducen a través de los altavoces o auriculares.

Aquí hay un método para hacerlo: Crear un archivo de sonido que contenga medio segundo de silencio. Al iniciar la aplicación, mientras la aplicación y el controlador de la vista aún se están cargando, use AVAudioPlayer para reproducir este archivo de silencio. Ahora, cuando su vista termine de cargarse, AVAudioPlayer debería estar listo para reproducir sonidos subsecuentes que no sean silencios mucho más rápido, ya que un poco de audio (silencio) ya ha llegado hasta los altavoces.

+2

Disculpe, pero esto no es una solución, esto es una solución. –

+1

@vaibhav eso es una meada muy pobre uso del mecanismo de votación abajo – AlBeebe

+0

@AlBeebe: Permítanme reformular. "Esto no es una solución, esta es una solución pobre que no funcionará si el clip de audio es de menos de medio segundo" –

Cuestiones relacionadas