Frage

Wie kann ich eine iPod Bibliothek Musikdatei in AVAudioPlayer bekommen?

War es hilfreich?

Lösung

Das SDK hat keine Vorkehrung für Dateien aus der iPod-Bibliothek zu lesen (wie Sie mit ihm zu verwenden AVAudioPlayer tun müssen, würden), wahrscheinlich für Anti-Piraterie-Gründe. Um iPod Bibliothekselemente zu spielen, verwenden Sie die MPMusicPlayerController Klasse.

Edit:.. Das ist nicht mehr genau Siehe unten Antworten, die die Verwendung der AVPlayer Klasse beschreiben

Andere Tipps

Wie David erwähnt gibt es mehr Arbeit, als dies zu tun, zum Beispiel, das Sie verwalten müssen, um den nächsten Titel in einer Sammlung von Medienobjekten zu spielen, aber hier ist eine Möglichkeit, es mit einem Satz von MPMediaItems, dass ein Benutzer ausgewählt zu tun der iPod Picker. Die AssetURL ist, was Sie verwenden, es gibt Ihnen einen Pfad zur MP3-Datei (zum Beispiel iPod-Bibliothek: //item/item.mp3 id = -6889145242935454020)

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

Ja, können Sie Songs aus der iPod-Bibliothek mit dem SDK, ohne auf die MPMusicPlayerController Klasse spielen.

Je mehr Grund AVPlayer Klasse Audiodateien vom iPod-Bibliothek unter Verwendung des NSUrl Wertes aus dem Song MPMediaItemPropertyAssetURL Eigentum umgehen kann. Sie haben viel mehr Arbeit zu tun alles Setup richtig zu bekommen, aber es kann getan werden.

Gibt es eine Möglichkeit, Informationen über dB-metering in MPMusicPlayerController zu bekommen? Vielleicht Initiieren parallel eine AVAudioSession für die Aufnahme der Arbeit tun würde ?? Ich brauche dB-Wert eine Art von Volumen-Spektrographen zu bauen.

- (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];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top