Pergunta

Meu aplicativo envolve música (ipodmusic) e há uma reprodução/pausa para o Uiswitch. Meu objetivo é ser capaz de detectar se a música está tocando, para que, portanto, o interruptor de peça/pausa possa dizer 'reproduzir' quando a música está tocando e 'pausa', se não for.

Foi útil?

Solução

if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying) ...

Outras dicas

Se a música for do seu próprio aplicativo, verifique Avaudioplayer's playing propriedade.

Se a música for do iPod, verifique MPMusicPlayerController nowPlayingItem ou playbackState propriedade.

O MPMusicPlayerController está disponível apenas no OS 3.0 ou superior. Se você está executando 2.0, você está sem sorte. Aqui está um trecho de código que verifica se você está executando 3,0 ou mais e só então tenta criar um 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;
        }
    }
}

Você deve compilar um SDK 3.0, mas se você definir o destino de implantação como 2.0, esse código ainda será executado em dispositivos mais antigos.

Vai para sim, se o seu som do iTunes está ligado, caso contrário, não for se o som estiver fora do iTunes Music Player ... para que você possa verificar o som do MusicPlayer com facilidade, você precisa adicionar a estrutura do jogador de mídia, basta experimentar vai funcionar corretamente ... thx ... :)

   if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying)
    {
           NSLog(@"yes itune Player Sound is on");
    }
    else
    {
          NSLog(@"NO itune Player Sound is not on");
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top