iphone - restaurarse - icloud
Error de AVAudioPlayer al cargar el archivo (6)
De la guía de programación multimedia:
Formatos de audio preferidos en iOS Para audio sin comprimir (de la mejor calidad), use datos de audio PCM lineal de 16 bits, little endian, empaquetados en un archivo CAF. Puede convertir un archivo de audio a este formato en Mac OS X usando la herramienta de línea de comandos afconvert, como se muestra aquí:
/usr/bin/afconvert -f caff -d LEI16 {INPUT} {OUTPUT}
La herramienta afconvert le permite convertir a una amplia gama de formatos de datos de audio y tipos de archivos. Consulte la página del manual de afconvert e ingrese afconvert -h en el intérprete de comandos de la shell para obtener más información.
Para audio comprimido cuando reproduzca un sonido a la vez, y cuando no necesite reproducir audio simultáneamente con la aplicación de iPod, use el formato AAC empaquetado en un archivo CAF o m4a.
Para un menor uso de memoria cuando necesite reproducir múltiples sonidos simultáneamente, use la compresión IMA4 (IMA / ADPCM). Esto reduce el tamaño del archivo pero conlleva un impacto mínimo de la CPU durante la descompresión. Al igual que con los datos PCM lineales, el paquete de datos IMA4 en un archivo CAF.
Estoy intentando usar AVAudioPlayer para reproducir un sonido simple y sigo recibiendo este error en la consola:
2011-09-02 20:29:07.369 MusicLog[967:10103] Error loading /System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHALPlugIn.bundle/Contents/MacOS/AppleHDAHALPlugIn: dlopen(/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHALPlugIn.bundle/Contents/MacOS/AppleHDAHALPlugIn, 262): Symbol not found: ___CFObjCIsCollectable
Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
in /System/Library/Frameworks/Security.framework/Versions/A/Security
Aquí está mi código que debería reproducir un sonido cuando se presiona mi botón:
NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"tick" ofType:@"caf"];
NSError *error;
NSURL *soundURL = [NSURL fileURLWithPath:soundPath];
AVAudioPlayer *tickPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:&error];
[tickPlayer setDelegate:self];
[tickPlayer setNumberOfLoops:0];
[tickPlayer prepareToPlay];
if (tickPlayer == nil)
{
NSLog(@"%@", [error description]);
}
else
{
[tickPlayer play];
}
¿Tengo de alguna manera el archivo en el lugar equivocado? Simplemente arrastré el archivo al proyecto y seleccioné la copia si era necesario.
EDITAR: Después de más pruebas, descubrí que no recibía este error al ejecutar el simulador IOS 4.2, solo en el simulador IOS 5. ¿Puedo asumir que esto es un error en iOS 5?
Gracias,
Haz de tu AVAudioPlayer una propiedad con una referencia fuerte.
Fuente: AVAudioPlayer se niega a reproducir cualquier cosa, pero no error, etc.
La respuesta anterior me ayudó a reproducir el archivo .wav en mi simulador, pero aún no lo he hecho funcionar en mi dispositivo. Algo sobre la falta de codecs ..?
Editar :
Para que el audio se reprodujera en el dispositivo, también tuve que agregar la siguiente línea a didFinishLaunchingWithOptions de AppDelegate.m:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
He tenido el mismo error, pero el sonido se reproduce después de que conservo la variable como un atributo de clase. Si el código que pones aquí está escrito dentro de un método, intenta mover esta variable. Supongo que el sonido no se reprodució porque la instancia de audioPlayer se perdió después de que el método quedó fuera del alcance.
@implementation SomeAudioController {
AVAudioPlayer *tickPlayer;
}
He tenido el mismo problema. Solo parece ser un problema en iOS5 en el simulador. Todavía no he probado en un dispositivo iOS 5. Sigo esperando que las actualizaciones de XCode hagan que el error desaparezca, pero hasta ahora no hay suerte.
Intente verificar si ha habilitado el punto de interrupción "Todas las excepciones", lo que dará lugar a que el depurador se rompa en la excepción. Simplemente deshabilite esta característica y la construyó de nuevo.
También tuve el mismo tipo de error cuando intenté reproducir algunos archivos mp3 con un clic de botón y compilado para iOS5. El error desapareció cuando compilé en iOS4, pero el sonido aún no sale. No hubo error de tiempo de ejecución y los NSLogs se imprimieron correctamente en la consola de depuración. ¿Encontraste una forma de reproducir tus archivos mp3?