2010-02-16 21 views
8

Meine App beinhaltet Musik (iPodMusic), und es gibt einen UISwitch, der Wiedergabe/Pause schaltet. Mein Ziel ist es, erkennen zu können, ob Musik gespielt wird, so dass der Wiedergabe/Pause-Schalter bei Wiedergabe von Musik "spielen" kann und "Pause", wenn dies nicht der Fall ist.Erkennen, ob Musik gespielt wird?

Antwort

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

Es funktionierte einwandfrei! – Flafla2

+1

Dies ist auch nützlich, wenn Sie möchten, dass Ihre App keine eigenen Geräusche mehr macht, wenn der Benutzer die iPod App startet. Wenn du zum Beispiel ein Spiel schreibst und deine eigene In-Game-Musik mit dem User kollidiert, der versucht, sein eigenes Spiel zu spielen. – Piku

+1

Dies muss behoben werden, da iOS 8.0 die 'iPodMusicPlayer'-Methode von' MPMusicController' ablehnt: tausche sie zu 'systemMusicPlayer'. – DDPWNAGE

1

MPMusicPlayerController ist nur in OS 3.0 oder höher verfügbar. Wenn Sie 2.0 ausführen, haben Sie kein Glück. Hier ist ein Code-Snippet, das überprüft, ob Sie laufen 3.0 oder höher und nur dann versuchen, ein 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; 
     } 
    } 
} 

Sie haben zu erstellen gegen eine 3.0 SDK zu kompilieren, aber wenn Sie das Implementierungsziel auf 2,0 gesetzt, dieser Code läuft immer noch auf älteren Geräten.

0

Es geht um ja wenn dein iTunes Sound ist sonst geht es zu nein wenn Ton aus iTunes Musik Player ist ... So kannst du leicht überprüfen ob Standard MusicPlayer Sound ein- oder ausgeschaltet ist Du musst Media-Player Framework hinzufügen Probieren Sie es aus Es wird richtig funktionieren .... Thx ... :)

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