iphone ios mpmovieplayercontroller

iphone - MPNowPlayingInfoCenter defaultCenter no actualizará ni recuperará información



ios mpmovieplayercontroller (2)

Finalmente descubrí el problema, no estaba pidiendo a mi aplicación que recibiera eventos de control remoto, simplemente agregando esta línea solucioné el problema:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

Estoy trabajando para actualizar MPNowPlayingInfoCenter y tengo un poco de problemas. He intentado bastante hasta el punto en que estoy en una pérdida. El siguiente es mi código:

self.audioPlayer.allowsAirPlay = NO; Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter"); if (playingInfoCenter) { NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init]; MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"series_placeholder"]]; [songInfo setObject:thePodcast.title forKey:MPMediaItemPropertyTitle]; [songInfo setObject:thePodcast.author forKey:MPMediaItemPropertyArtist]; [songInfo setObject:@"NCC" forKey:MPMediaItemPropertyAlbumTitle]; [songInfo setObject:albumArt forKey:MPMediaItemPropertyArtwork]; [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo]; }

Esto no está funcionando, también he intentado:

[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:nil];

En un intento de obtenerla para eliminar la información existente de la aplicación del iPod (o lo que sea que tenga información allí). Además, solo para ver si puedo descubrir el problema, he intentado recuperar la información actual sobre el inicio de la aplicación:

NSDictionary *info = [[MPNowPlayingInfoCenter defaultCenter] nowPlayingInfo]; NSString *title = [info valueForKey:MPMediaItemPropertyTitle]; NSString *author = [info valueForKey:MPMediaItemPropertyArtist]; NSLog(@"Currently playing: %@ // %@", title, author);

y obtengo Currently playing: (null) // (null)

He investigado esto bastante y los siguientes artículos lo explican a fondo, sin embargo, todavía no puedo hacer que esto funcione correctamente. ¿Me estoy perdiendo de algo? ¿Habría algo que interfiera con esto? ¿Es este un servicio que mi aplicación necesita para registrarse (no lo vi en ningún documento)?

Docs de Apple

Cambia los controles de audio de fondo de la pantalla de bloqueo.

Ahora se reproduce información ignorada


Yo uso el siguiente código y siempre funciona. También estoy usando MPMoviePlayer como tú. ¿Has comprobado si NSClassFromString(@"MPNowPlayingInfoCenter") alguna vez devuelve YES ? ¿Ha configurado su aplicación reproducir audio en clave de fondo en su lista?

- (void) loadMPInformation { NSDictionary *mpInfo; if([savedTrack.belongingAlbum.hasAlbumArt boolValue] == NO){ mpInfo = [NSDictionary dictionaryWithObjectsAndKeys:savedTrack.belongingAlbum.album, MPMediaItemPropertyAlbumTitle, savedTrack.belongingArtist.artist, MPMediaItemPropertyArtist, savedTrack.name, MPMediaItemPropertyTitle, nil]; } else { UIImage *artImage = [UIImage imageWithData:savedTrack.belongingAlbum.art]; MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc] initWithImage:artImage]; mpInfo = [NSDictionary dictionaryWithObjectsAndKeys:savedTrack.belongingAlbum.album, MPMediaItemPropertyAlbumTitle, savedTrack.belongingArtist.artist, MPMediaItemPropertyArtist, savedTrack.name, MPMediaItemPropertyTitle, artwork, MPMediaItemPropertyArtwork, nil]; } [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = mpInfo; }