para - iOS: actualización del estado de reproducción/pausa multimedia en la barra multitarea
ios 12 descargar (2)
Descubrí que al utilizar un gráfico CoreAudio AU, AUGraphStart () mostrará el indicador de reproducción en la barra de estado de iOS y la barra multitarea de iOS, y AUGraphStop () los borrará.
Tenemos una aplicación en funcionamiento que usa un gráfico AU - CoreAudio API - para reproducir audio. El gráfico siempre se está ejecutando, y el estado de reproducción / pausa de los diversos materiales de origen se gestiona en el gráfico que representa las funciones de devolución de llamada. Respondemos con éxito a los eventos UIEventTypeRemoteControl, y actualizamos con éxito la pantalla de bloqueo con los metadatos del contenido que se está reproduciendo utilizando MPNowPlayingInfoCenter.
La única pieza faltante es actualizar el estado del botón Reproducir / Pausa en la barra multitarea de iOS. Siempre está en el modo "pausa" (||), incluso cuando el audio de la aplicación ya está en pausa. Nunca cambia a su estado de "reproducción" (>).
¿Qué API se usa para actualizar el estado del botón Reproducir / Pausa?
Cambiar el diccionario MPNowPlayingInfo, establecer un nuevo parámetro
MPNowPlayingInfoPropertyPlaybackRate to 1.0f to show pause button
MPNowPlayingInfoPropertyPlaybackRate to 0.0f to show play button
Desde el botón de reproducción hasta el botón de pausa
Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if (playingInfoCenter) {
NSMutableDictionary *songInfo = [NSMutableDictionary dictionaryWithDictionary:[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo];
//[songInfo setObject:songTitle forKey:MPMediaItemPropertyTitle];
//[songInfo setObject:songArtist forKey:MPMediaItemPropertyArtist];
[songInfo setObject:[NSNumber numberWithFloat:1.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = songInfo;
}
Desde el botón de pausa hasta el botón de reproducción
Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if (playingInfoCenter) {
NSMutableDictionary *songInfo = [NSMutableDictionary dictionaryWithDictionary:[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo];
//[songInfo setObject:songTitle forKey:MPMediaItemPropertyTitle];
//[songInfo setObject:songArtist forKey:MPMediaItemPropertyArtist];
[songInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = songInfo;
}