2 Stimmen

Zugriff auf das BPM-Feld eines Liedes (MPMediaItemPropertyBeatsPerMinute funktioniert nicht)

Ich baue eine Anwendung, die einen Media-Player in es hat (ich bin mit iOS SDK 4.2). Während ein bestimmter Song abgespielt wird, kann ich so ziemlich jede der Eigenschaften zugreifen, aber ich kann nicht auf MPMediaItemPropertyBeatsPerMinute zugreifen.

Er gibt jedes Mal Null zurück.

Le site Apfel-Doku Staaten:

Die Anzahl der musikalischen Beats pro Minute für das Medienelement, die dem Feld "BPM" auf der Registerkarte "Info" im Dialogfeld "Informationen abrufen" in iTunes entspricht. Wert ist ein NSNumber-Objekt, das einen NSUInteger-Datentyp darstellt.

Verfügbar in iOS 4.0 und höher.

Deklariert in MPMediaItem.h.

Bitte beachten Sie, dass die Songs, die ich verwende, die BPM-Daten im BPM-Feld enthalten. Ich weiß, dass es nicht standardmäßig eingestellt ist.

Der Code, den ich ausprobiert habe, lautet:

MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
// ...
MPMediaItem *currentItem = [musicPlayer nowPlayingItem];
if (currentItem != NULL) {
  NSLog([NSString stringWithFormat:@"%@", [currentItem valueForProperty:MPMediaItemPropertyBeatsPerMinute]]);
}

Der obige Code gibt für jedes Lied "(null)" aus.

Da ich auf diese Weise auf jede andere Eigenschaft des aktuellen Songs zugreifen konnte, glaube ich, dass dies ein Fehler im SDK sein könnte.

Meine Frage ist also etwas zweigeteilt.

  1. Mache ich das falsch, oder ist dies ein bekannter Fehler im SDK?
  2. Wie könnte ich sonst die BPM-Daten des Liedes abrufen?

3voto

Felix Punkte 35229

Ich habe dieses Problem mit iOS SDK 4.3 getestet und kann bestätigen, dass es funktioniert. Ihr Code sieht jedoch gut aus.

Es könnte sich um einen Fehler im 4.2 SDK handeln, der in 4.3 behoben wurde. Ich kann mir auch vorstellen, dass ältere Versionen von iTunes die BPM-Eigenschaft nicht korrekt synchronisieren.

Sie könnten versuchen, die Zeichenfolge @"beatsPerMinute" anstelle von MPMediaItemPropertyBeatsPerMinute (funktioniert in iOS 4.3), aber ich vermute, das wird Ihr Problem nicht lösen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X