2010-02-16 7 views
8

Mon application implique de la musique (iPodMusic), et il y a un UISwitch basculant lecture/pause. Mon but est de pouvoir détecter si de la musique est en train de jouer, de sorte que le bouton de lecture/pause puisse dire 'jouer' quand la musique est en cours de lecture et 'pause' si ce n'est pas le cas.Détecter si la musique joue?

Répondre

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

Cela a fonctionné sans faille! – Flafla2

+1

Ceci est également utile si vous souhaitez que votre application cesse d'émettre son propre bruit si l'utilisateur démarre l'application iPod. Par exemple, si vous écrivez un jeu et que votre propre jeu dans le jeu se heurte à l'utilisateur essayant de jouer le sien. – Piku

+1

Cela doit être corrigé en raison de la dépréciation par iOS 8.0 de la méthode 'iPodMusicPlayer' de' MPMusicController': l'échanger avec 'systemMusicPlayer'. – DDPWNAGE

1

Si vous utilisez la version 2.0, vous n'avez pas de chance. Voici un extrait de code qui vérifie si vous utilisez 3.0 ou au-dessus et ne tente alors de créer 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; 
     } 
    } 
} 

Vous devez compiler contre un SDK 3.0, mais si vous définissez la cible de déploiement à 2.0, ce code fonctionne toujours sur les appareils plus anciens.

0

il va à oui si votre son iTunes est activé sinon il va à non si le son est éteint du lecteur de musique iTunes ... Donc vous pouvez vérifier facilement le son MusicPlayer par défaut est activé ou désactivé Vous devez ajouter le lecteur multimédia Juste l'essayer cela fonctionnera correctement .... Thx ... :)

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