Reproducir sonidos en tu iPhone. Nivel Mojamuto.
30 June 2008

(Los fuentes del ejemplo están disponibles en el pie del artículo).
Después de haber tirado la toalla a la hora de intentar reproducir algún sonido del "sistema", he realizado un ejemplo reproduciendo un pequeño fichero de sonido con extensión CAF, AIF o WAV. Para nuestro ejemplo, vamos a reproducir un pequeño sonido cada vez que insertemos una fila a nuestro TableView.
CAF es la extensión que hace referencia a Core Audio Format, que es un formato de fichero utilizado para almacenar y manipular audio. Existen multitud de aplicaciones para la creación de este tipo de ficheros, así como para su conversión desde otros formatos.
1. PREPARAMOS EL FICHERO
Para ello, hago uso de un Wrapper ya existente y muy conocido llamado SoundEffect. Este wrapper, definido en su clase SoundEffect, tiene un manejo muy sencillo, ya que es una simple clase que dispone de los siguientes metodos:
[cpp]+ (id)soundEffectWithContentsOfFile:(NSString *)aPath;
- (id)initWithContentsOfFile:(NSString *)path;
- (void)play;[/cpp]
El método principal de los anteriores es initWithContentsOfFile, el cual hace uso de la función AudioServicesCreateSystemSoundID, que prepara nuestro fichero de audio para ser reproducido con tan solo llamar al método play.
AudioServicesCreateSystemSoundID, tiene dos parámetros:
[cpp]
OSStatus AudioServicesCreateSystemSoundID ( CFURLRef inFileURL, SystemSoundID *outSystemSoundID );
[/cpp]
- inFileURL, es el fichero que más tarde vamos a reproducir.
- outSystemSoundID es el parámetro de salida con el fichero ya preparado.
2. REPRODUCIMOS EL FICHERO
Una vez creada nuestra clase SoundEffect, la cual utilizaremos para preparar nuestro fichero de audio, nos disponemos a crearnos un objeto de dicha clase en nuestra aplicación:
[cpp]
NSBundle *mainBundle = [NSBundle mainBundle];
SoundEffect *clickSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"click" ofType:@"caf"]];
[/cpp]
NSBundle, es el objeto que representa la localización del sistema de ficheros que agrupa código y recursos, el cual utilizaremos para localizar nuestros recursos y cargar el fichero click.caf.
Ahora tan solo nos queda llamar al método play que vimos anteriormente para ejecutar nuestro fichero de audio.
Descargar ejemplo: uitableviewsound.zip

Comentarios recientes
y como podria hacer para reproducir en formato .mp3? Pq un wav me ocupa mucho para una sintonia ...
Gracias por la colaboración que hace esta pagina acerca de el desarrollo para el iphone. Estoy muy agradecido por la cantidad de contenido interesante.
Ah vale vale, si, tengo ese ejemplo. Saludos.
Gracias compañero. Lo he sacado de un ejemplo que existe en la página de los ejemplos de iPhone, en concreto se llama metronome. Igualmente, recuerda que puedes pasarle también un fichero WAV.
Muy interesante compañero. Tus artículos como siempre, se salen. Mi duda es: ¿de donde has sacado ese efecto de sonido, o cómo lo has hecho? Saludos.
Muchas gracias Santi, es un buen ejemplo de aplicación Web. Y sobre todo muy util. Voy a publicarla en el foro con tu permiso. Saludos.
Se que no tiene que ver con la entrada pero no sabia donde comentarlo... he descubierto una aplicacion web muy util adaptada para el iphone con el que poder ver la guia de programacion de television en españa. La web es: http://iprotv.net78.net
Deja un comentario