Como reproduzir o arquivo da biblioteca do iPod no AvPlayer
-
21-09-2019 - |
Pergunta
Como posso colocar um arquivo de música do iPod Library no AvaudioPlayer?
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];
}