Detectar si se está reproduciendo música?
-
20-09-2019 - |
Pregunta
Mi aplicación implica música (iPodMusic), y hay una UISwitch alternar reproducción / pausa. Mi objetivo es ser capaz de detectar si se está reproduciendo música, de modo que, por tanto, el interruptor de reproducción / pausa puede decir 'juego' cuando se está reproduciendo música y 'pausa' si no lo es.
Solución
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) ...
Otros consejos
Si la música es de su propia aplicación, comprobar AVAudioPlayer de propiedad playing
.
Si la música es de iPod, marque de MPMusicPlayerController nowPlayingItem
o playbackState
propiedad.
MPMusicPlayerController sólo está disponible en OS 3.0 o superior. Si está ejecutando 2.0 se está de 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;
}
}
}
Se tiene que compilar contra un SDK 3.0, pero si se establece el destino de despliegue a 2.0, este código aún se ejecuta en dispositivos más antiguos.
que va a yes si su sonido iTunes está en otra cosa que va a ningún sonido si está fuera del reproductor de música iTunes ... para que pueda comprobar fácilmente por defecto Reproductor Musical de sonido está activado o desactivado Es necesario agregar Marco de los medios de comunicación-jugador Justo es tratar de que funcione correctamente .... Thx ...:)
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying)
{
NSLog(@"yes itune Player Sound is on");
}
else
{
NSLog(@"NO itune Player Sound is not on");
}