Вопрос

Мое приложение включает музыку (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");
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top