2012-09-04 14 views
7

¿Alguien logró hacer que un NSUserNotification soundName funcione con un sonido personalizado? He intentado con formato aif y caf 44100KHz 16bit 2 segundos de duración. La notificación se muestra en el momento adecuado, con el título y el texto correctos, pero se reproduce el sonido predeterminado en lugar de mi sonido personalizado.NSUserNotification con nombre de sonido personalizado

Los archivos de sonido se copian correctamente en el paquete de la aplicación. Si intento esto los sonidos funcionan bien:

NSSound* sound = [NSSound soundNamed:@"morse.aif"]; 
[sound play]; 

Pero cuando se utiliza el mismo sonido en mi notificación, el sonido de notificación por defecto se juega:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    // Insert code here to initialize your application 
    NSUserNotification* notification = [[NSUserNotification alloc]init]; 
    notification.title = @"Titolo"; 
    notification.deliveryDate = [NSDate dateWithTimeIntervalSinceNow:10]; 
    notification.soundName = @"morse.aif"; 
    [[NSUserNotificationCenter defaultUserNotificationCenter]scheduleNotification:notification]; 
} 

me trataron con y sin extensión, pero sin éxito

notification.soundName = @"morse.aif"; 
notification.soundName = @"morse2.caf"; 
notification.soundName = @"morse";  

ninguno de estos trabajos.

Mi aplicación no está firmada y no tiene espacio aislado, pero no creo que sea necesaria para las notificaciones de los usuarios, y aparte del problema de sonido, las notificaciones funcionan muy bien.

+0

¿Has descubierto esto? Tengo el mismo problema. Cuando se le preguntó en Apple Dev Forms, se le pidió que presentara un informe de error para que "lo investigaran". Realmente espero que haya alguna forma de resolver esto ya que no puedo esperar y espero que Apple lo analice ... – kdbdallas

+0

Como suele suceder, el problema se resuelve solo después de un tiempo. Tal vez había algún tipo de sistema de almacenamiento en caché en su lugar. –

+1

Obteniendo lo mismo aquí en julio de 2014. – BergQuester

Respuesta

8

Me parece que este problema es sensible a mayúsculas y minúsculas. Usar notification.soundName = @"Morse"; me funciona a la perfección. Como se puede ver en las NSSound documentation para soundNamed Las carpetas de búsqueda de sonidos son, en orden:

~/Library/Sounds 
/Library/Sounds 
/Network/Library/Sounds 
/System/Library/Sounds 

Si nos fijamos en la última, que es probablemente donde usted está tratando de tirar de ya que son la sonidos en Preferencias del sistema, se puede ver sus nombres

Sound names

Así que sigue el caso del archivo, y omitir la extensión y debería funcionar como se espera.

0

Si tiene varias versiones de su aplicación, el centro de notificaciones binarias puede estar buscando el archivo binario incorrecto para sus archivos de sonido.

Si se asegura de eliminar cualquier copia antigua del binario, debería solucionar el problema.

de los foros de Apple Dev: https://devforums.apple.com/message/708511

Esto puede suceder si usted tiene múltiples versiones de su aplicación binaria flotando alrededor. NotificationCenter solo multa a uno de ellos. Si es el que no tiene el sonido, entonces no funcionará.

Cuestiones relacionadas