Cómo reproducir el archivo de la biblioteca del iPod en AVPlayer
-
21-09-2019 - |
Pregunta
¿Cómo puedo obtener un archivo de música de la biblioteca de iPod en AVAudioPlayer?
Solución
El SDK no permite leer archivos de la biblioteca del iPod (como tendría que hacer para usar AVAudioPlayer
con él), probablemente por motivos de lucha contra la piratería.Para reproducir elementos de la biblioteca del iPod, utilice el MPMusicPlayerController
clase.
Editar:Esto ya no es exacto. Consulte las respuestas a continuación que describen el uso de la clase AVPlayer.
Otros consejos
A medida que David menciona que hay más trabajo que hacer que esto, por ejemplo, usted tiene que manejar a jugar la siguiente pista en una colección de elementos multimedia, pero aquí es una manera de hacerlo con un conjunto de MPMediaItems que un usuario seleccionado de el Selector de iPod. El AssetURL es lo que se utiliza, se le da una ruta de acceso al archivo MP3 (por ejemplo iPod-biblioteca:? Id = //item/item.mp3 -6889145242935454020)
NSURL *anUrl = [[mediaItems objectAtIndex: 0] valueForProperty:MPMediaItemPropertyAssetURL];
self.audioPlayerMusic = [[[AVPlayer alloc] initWithURL:anUrl] retain];
[self.audioPlayerMusic play];
Sí, puede reproducir canciones de la biblioteca del iPod utilizando el SDK sin recurrir a la clase MPMusicPlayerController
.
La clase más básica AVPlayer
puede manejar archivos de audio de la biblioteca del iPod utilizando el valor de la propiedad NSUrl
MPMediaItemPropertyAssetURL
de la canción. Usted tiene que hacer mucho más trabajo para obtener una configuración todo correctamente, pero se puede hacer.
¿Hay alguna posibilidad de obtener información sobre dB-medición en MPMusicPlayerController
? Tal vez iniciar un AVAudioSession
para la grabación en paralelo haría el trabajo ?? Necesito DB-valores para construir una especie de volumen-espectrógrafo.
- (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];
}