¿Cómo cambiar la position de la pista en la pantalla de locking / centro de control?

Cuando se reproduce una canción con la aplicación de música ios 7, el usuario puede usar el slider para cambiar la position de la canción en la pantalla de locking / el centro de control. El control deslizante está activo:

introduzca la descripción de la imagen aquí

Pero cuando escucho música en el usuario de mi aplicación no puedo hacerlo. El control deslizante no está activo:

introduzca la descripción de la imagen aquí

¿Cómo puedo habilitar esta function en mi aplicación?

Puede cambiar la position de la pista con la ayuda de MPRemoteCommandCenter en iOS 9.1 y superior.

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_0) { MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter shanetworkingCommandCenter]; [commandCenter.changePlaybackPositionCommand setEnabled:true]; [commandCenter.changePlaybackPositionCommand addTarget:self action:@selector(changedThumbSliderOnLockScreen:)]; } 

y método

 - (MPRemoteCommandHandlerStatus)changedThumbSliderOnLockScreen:(MPChangePlaybackPositionCommandEvent *)event { // change position [self setCurrentPlaybackTime:event.positionTime]; // update MPNowPlayingInfoPropertyElapsedPlaybackTime [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo]; return MPRemoteCommandHandlerStatusSuccess; } 

Estaba buscando lo mismo, pero no creo que sea posible ver esta publicación:

¿Cómo habilitar el depurador de audio en el panel de control de la pantalla de locking de iOS?

También las aplicaciones populares como Spotify y Soundcloud no tienen esta implementada.

Si está buscando una forma de mostrar la música actual en la pantalla de locking, debe hacer lo siguiente.

Primero cuando juegas una nueva pista, actualiza NowPlayingInfo:

 NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init]; [songInfo setObject:trackTitle forKey:MPMediaItemPropertyTitle]; [songInfo setObject:artistName forKey:MPMediaItemPropertyArtist]; [songInfo setObject:duration forKey:MPMediaItemPropertyPlaybackDuration]; [songInfo setObject:releaseDate forKey:MPMediaItemPropertyReleaseDate]; [songInfo setValue:playbackRate forKey:MPNowPlayingInfoPropertyPlaybackRate]; [songInfo setObject:elapsedTime forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime]; [songInfo setObject:albumArtImage forKey:MPMediaItemPropertyArtwork]; [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo]; 

Para manejar events desde la pantalla de locking, primero debe indicar a su aplicación que comience a recibir events desde el control remoto. Hago esto en la aplicación didFinishLaunchingWithOptions de mi AppDelegate usando el siguiente código

  // Turn on remote control event delivery [[UIApplication shanetworkingApplication] beginReceivingRemoteControlEvents]; 

A continuación, debe implementar el método remoteControlReceivedWithEvent para manejar los events capturados. En APPDelegate agrega el siguiente método

 - (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent { if (receivedEvent.type == UIEventTypeRemoteControl) { switch (receivedEvent.subtype) { case UIEventSubtypeRemoteControlPause: //pause code here break; case UIEventSubtypeRemoteControlPlay: //play code here break; case UIEventSubtypeRemoteControlPreviousTrack: // previous track code here break; case UIEventSubtypeRemoteControlNextTrack: //next track code here break; default: break; } } 

}

Más información sobre MPNowPlayingInfoCenter desde apple docs -> https://developer.apple.com/library/ios/documentation/mediaplayer/reference/MPNowPlayingInfoCenter_Class

    Intereting Posts