Определение, играет ли музыка?
Мое приложение включает музыку (iPodMusic), и есть переключатель uiswitch, переключающий воспроизведение/паузу. Моя цель-определить, играет ли музыка, чтобы переключатель воспроизведения/паузы мог говорить "play", когда музыка играет, и "pause", если это не так.
4 ответа:
Если музыка из вашего собственного приложения, проверьте СВОЙСТВО AVAudioPlayer
playing
.Если музыка с iPod, проверьте MPMusicPlayerController
nowPlayingItem
илиplaybackState
свойство.
MPMusicPlayerController доступен только в ОС 3.0 или выше. Если вы работаете с 2.0, вам не повезло. Вот фрагмент кода, который проверяет, используете ли вы 3.0 или выше, и только затем пытается создать 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; } } }
Вы должны компилироваться с помощью пакета SDK 3.0, но если вы зададите цель развертывания 2.0, этот код все равно будет выполняться на старых устройствах.
Он переходит в Да, если ваш звук iTunes включен, он переходит в нет, если звук выключен из музыкального проигрывателя iTunes ... Таким образом, вы можете легко проверить по умолчанию MusicPlayer звук включен или выключен вам нужно добавить Media-player Framework просто попробуйте это будет работать должным образом.... Тнх...:)
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) { NSLog(@"yes itune Player Sound is on"); } else { NSLog(@"NO itune Player Sound is not on"); }