2016-03-25 8 views
0

Ich möchte Metadaten (Lied, Künstler) aus einem Audiostream mit AVAUDIOPLAYER abrufen. Ich habe versucht mit diesem Code, aber ich bekomme keine Daten von mehreren URL.Metadaten aus Audiostream mit AVAUDIOPLAYER abrufen

NSURL *url = [NSURL URLWithString:urlString]; 
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil]; 
NSMutableDictionary *songInfo = [[NSMutableDictionary alloc] init]; 

for (NSString *format in [asset availableMetadataFormats]) 

Coud jemand mir helfen? vielleicht habe ich falsch gemacht? AVAUDIOPLAYER steht Ihnen zur Verfügung?

Dank

+0

irgendein Rat ????? – Seb78

+0

Ich würde 'AVPlayer' anstelle von' AVAudioPlayer' verwenden, dann können Sie ein 'AVPlayerItem' erstellen und dieses mit einer Instanz von' AVPlayer' verbinden. Metadaten zu dem Objekt können unter Verwendung seiner Eigenschaften wie "Spuren" und "Dauer" abgerufen werden. [hier sind die Dokumente] (https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVPlayerItem_Class/index.html). Wenn Sie zusätzliche Metadaten benötigen, die nicht von 'AVPlayerItem' bereitgestellt werden, können Sie zuerst ein' AVAsset' erstellen und die zusätzlichen Daten von diesem Objekt abrufen. Sie würden dann ein 'AVPlayerItem' aus dem' AVAsset' erstellen. – MikeG

+0

Vielen Dank für Ihren Hinweis. Irgendwelche Lösungen mit Avaudioplayer? vielleicht ist es nicht möglich, Metadaten mit zu bekommen .. ???? – Seb78

Antwort

0

Hier ist ein Beispiel dafür, wie ein AVAsset zu erstellen und verwenden sie ein AVPlayerItem zu erstellen, die dann mit einer Instanz von AVPlayer zugeordnet werden können. Metadaten können unter Verwendung der Eigenschaften des AVAsset ...

var player = AVPlayer()  
func createAssetAndItem(){ 

    //create AVAsset from an NSURL. metadata can be retrieved from the asset depending on what is available 
let createdAVAsset = AVURLAsset(URL: songNSURL) 

    //create an AVPlayerItem from the AVAsset 
let createdAVItem = AVPlayerItem(asset: createdAVAsset) 

    //asscoaite AVPlayerItem with instance of AVPlayer 
player = AVPlayer(AVPlayerItem: createdAVItem) 


} 
+0

Funktioniert nicht :(Ich bin jetzt verzweifelt. Ich finde keine Lösungen – Seb78

+0

arbeiten Sie jetzt mit 'AVPlayer'? Wir müssen Ihren Code zu Ihrem Versuch sehen, aber Sie sollten wahrscheinlich eine neue Frage für öffnen Das. Wo bekommen Sie auch die Audiodatei? Vielleicht sind die Metadaten nicht erstellt – MikeG

+0

Ich antwortete, Entschuldigung für die Zeit, die ich nahm. – Seb78