Pregunta

¿Cómo puedo obtener un archivo de música de la biblioteca de iPod en AVAudioPlayer?

¿Fue útil?

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];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top