2010-02-16 2 views
8

Мое приложение включает музыку (iPodMusic), и есть UISwitch, включающая воспроизведение/паузу. Моя цель - определить, играет ли музыка, поэтому переключатель воспроизведения/паузы может говорить «играть», когда музыка играет, и «пауза», если это не так.Обнаруживает, играет ли музыка?

ответ

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

Это работало безупречно! – Flafla2

+1

Это также полезно, если вы хотите, чтобы ваше приложение перестало создавать свой собственный шум, если пользователь запускает приложение iPod. Например, если вы пишете игру и свои собственные внутриигровые музыкальные столкновения с пользователем, пытающимся играть самостоятельно. – Piku

+1

Это должно быть исправлено из-за устаревания iOS 8.0 метода 'iPodMusicPlayer'' MPMusicController': замените его на 'systemMusicPlayer'. – DDPWNAGE

1

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; 
     } 
    } 
} 

Вы должны скомпилировать против 3.0 SDK, но если вы поставили цель развертывания до 2,0, этот код все еще работает на старых устройствах.

0

это идет, если ваш звук iTunes включен, иначе он не будет звучать без звука музыкального плеера iTunes ... Таким образом, вы можете легко проверить звук по умолчанию. SoundPlayer Sound включен или выключен. Вам необходимо добавить медиа-плеер Framework Просто попробуйте, он будет работать должным образом .... Thx ... :)

if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) 
    { 
      NSLog(@"yes itune Player Sound is on"); 
    } 
    else 
    { 
      NSLog(@"NO itune Player Sound is not on"); 
    } 
Смежные вопросы