sábado, 15 de septiembre de 2012

¿Por que la propiedad MPMediaItemPropertyLyrics esta vacia?

Realmente no se si en iOS 6 ya esta corregido este pequeño inconveniente, pero en iOS 5.1 y anteriores, al consultar la propiedad MPMediaItemPropertyLyrics del ítem en reproducción, nos regresaba un NSString vacío aun y cuando el elemento si contaba con letra (esto comprobado por ejemplo, en la aplicación de música del dispositivo).

Una solución a esto consiste en obtener la letra de una manera un poco diferente, primero agregamos el Framework AVFoundation y posteriormente usamos las siguientes líneas de código:

NSURL* songURL = [musicPlayer.nowPlayingItem valueForProperty:MPMediaItemPropertyAssetURL];
AVAsset* songAsset = [AVURLAsset URLAssetWithURL:songURL options:nil];
NSString* PropiedadLetra = [songAsset lyrics];

Y terminaremos siempre con el contenido de la letra en nuestra variable PropiedadLetra. Este código es utilizado en la aplicación gratuita Song Data que consulta esta y mas información de tus canciones. Puedes descargarla si así lo deseas de aquí.