Pergunta

Como posso colocar um arquivo de música do iPod Library no AvaudioPlayer?

Foi útil?

Solução

O SDK não tem provisão para ler arquivos da biblioteca do iPod (como você precisa fazer para usar AVAudioPlayer com ele), provavelmente por razões anti-pirataria. Para reproduzir itens da biblioteca do iPod, use o MPMusicPlayerController classe.

EDIT: Isso não é mais preciso. Veja as respostas abaixo que descrevem o uso da classe Avplayer.

Outras dicas

Como David menciona, há mais trabalho a fazer do que isso, por exemplo, você precisa gerenciar a próxima faixa em uma coleção de itens de mídia, mas aqui está uma maneira de fazê -lo com um conjunto de mpmediaitems que um usuário selecionado no seletor do iPod . O AssetUrl é o que você usa, oferece um caminho para o arquivo mp3 (por exemplo, ipod-library: //item/item.mp3? Id = -6889145242935454020)

NSURL *anUrl = [[mediaItems objectAtIndex: 0] valueForProperty:MPMediaItemPropertyAssetURL];
self.audioPlayerMusic = [[[AVPlayer alloc] initWithURL:anUrl] retain];                      
[self.audioPlayerMusic play];

Sim, você pode tocar músicas da biblioteca do iPod usando o SDK sem recorrer ao MPMusicPlayerController classe.

O mais básico AVPlayer A classe pode lidar com arquivos de áudio da biblioteca do iPod usando o NSUrl valor da música MPMediaItemPropertyAssetURL propriedade. Você precisa fazer muito mais trabalho para configurar tudo corretamente, mas isso pode ser feito.

Existe alguma possibilidade de obter informações sobre a medição de DB em MPMusicPlayerController? Talvez iniciando um AVAudioSession Para gravar em paralelo, faria o trabalho? Preciso de valores de banco de dados para criar algum tipo de espectro de volume.

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
    NSURL *url = [[mediaItemCollection.items objectAtIndex:0] valueForProperty:MPMediaItemPropertyAssetURL];

    NSError *error;
    self.player = [[AVAudioPlayer alloc] url error:&error];

    if (!error) {
        [self.player prepareToPlay];
        [self.player play];
    }

    [mediaPicker dismissModalViewControllerAnimated:YES];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top