Обнаружение, играет ли музыка?
-
20-09-2019 - |
Вопрос
Мое приложение включает музыку (iPodMusic), и есть UISwitch, переключающий воспроизведение/паузу.Моя цель - иметь возможность определять, воспроизводится ли музыка, чтобы переключатель воспроизведения/паузы мог говорить «играть», когда музыка воспроизводится, и «пауза», если это не так.
Решение
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) ...
Другие советы
Если музыка взята из вашего приложения, проверьте AVAudioPlayer's playing
свойство.
Если музыка взята с iPod, проверьте MPMusicPlayerController's nowPlayingItem
или playbackState
свойство.
MPMusicPlayerController доступен только в OS 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 по умолчанию. Вам нужно добавить Framework медиа-плеера. Просто попробуйте, он будет работать правильно....Спасибо...:)
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying)
{
NSLog(@"yes itune Player Sound is on");
}
else
{
NSLog(@"NO itune Player Sound is not on");
}