2010-02-16 13 views
8

Mi aplicación implica música (iPodMusic), y hay un UISwitch alternando reproducción/pausa. Mi objetivo es poder detectar si se está reproduciendo música, de modo que el interruptor reproducir/pausa puede decir 'reproducir' cuando la música está sonando y 'pausa' si no es así.¿Detectando si se está reproduciendo la música?

Respuesta

21
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) ... 
+0

¡Funcionó impecablemente! – Flafla2

+1

Esto también es útil si quieres que tu aplicación deje de hacer ruido si el usuario inicia la aplicación iPod. Por ejemplo, si estás escribiendo un juego y tu propia música en el juego choca con el usuario que intenta jugar el suyo. – Piku

+1

Esto tiene que solucionarse debido a la desactivación de iOS 8.0 del método 'iPodMusicPlayer' de' MPMusicController': cambiarlo a 'systemMusicPlayer'. – DDPWNAGE

1

MPMusicPlayerController solo está disponible en OS 3.0 o superior. Si está ejecutando 2.0, no tiene suerte. He aquí un fragmento de código que comprueba si se está ejecutando 3.0 o superior y sólo entonces los intentos de crear un MPMuiscPlayerController

bool playerDetectedAndPlaying = false; 
NSString *reqSysVer = @"3.0"; 
NSString *currSysVer = [[UIDevice currentDevice] systemVersion]; 
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending){ 
    Class MusicPlayerController = NSClassFromString(@"MPMusicPlayerController"); 
    if (MusicPlayerController){   
     id myMusicPlayerController = [[MusicPlayerController alloc]init]; 
     id MusicPlayer = [[myMusicPlayerController class] iPodMusicPlayer ]; 
     if ([ MusicPlayer playbackState ] == MPMusicPlaybackStatePlaying) { 
      playerDetectedAndPlaying = true; 
     } 
    } 
} 

Usted tiene que compilar contra un SDK 3.0, pero si se establece el destino de despliegue a 2.0, este código todavía se ejecuta en dispositivos más antiguos.

0

va a "si" si su sonido de iTunes está activado, de lo contrario va a "no" si el sonido está desactivado. Reproductor de música de iTunes ... Puede comprobar fácilmente el sonido de MusicPlayer predeterminado está activado o desactivado. Necesita agregar el reproductor de medios. Solo pruébalo funcionará correctamente ... Thx ... :)

if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) 
    { 
      NSLog(@"yes itune Player Sound is on"); 
    } 
    else 
    { 
      NSLog(@"NO itune Player Sound is not on"); 
    } 
Cuestiones relacionadas