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