Rilevare se si ascolta la musica?
-
20-09-2019 - |
Domanda
La mia app coinvolge musica (iPodMusic), e c'è un UISwitch commutazione play / pausa. Il mio obiettivo è quello di essere in grado di rilevare se la musica è in riproduzione, in modo che, pertanto, l'interruttore di riproduzione / pausa può dire 'play' quando la musica è in riproduzione e 'pausa', se non lo è.
Soluzione
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) ...
Altri suggerimenti
Se la musica è dal tuo app, selezionare di AVAudioPlayer proprietà playing
.
Se la musica è da iPod, controllare di MPMusicPlayerController proprietà nowPlayingItem
o playbackState
.
MPMusicPlayerController è disponibile solo in OS 3.0 o superiore. Se stai usando 2,0 sei fuori di fortuna. Ecco un frammento di codice che controlla se si sta eseguendo 3.0 o superiore e solo allora i tentativi di creare 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;
}
}
}
Si deve compilare contro uno SDK 3.0, ma se si imposta la destinazione di distribuzione a 2.0, questo codice viene eseguito ancora sui vecchi dispositivi.
va al sì se il vostro suono iTunes è su altro si va a nessuno se il suono è fuori di lettore di musica iTunes ... in modo da poter comodamente verificare difetto MusicPlayer suono è On o Off È necessario aggiungere Framework media-player Basta Provalo funzionerà correttamente .... Thx ...:)
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying)
{
NSLog(@"yes itune Player Sound is on");
}
else
{
NSLog(@"NO itune Player Sound is not on");
}