/ / Odbieranie metadanych z .pls w Swift 2 Xcode 7 - szybki, adres URL, metadane, radio

Odbieranie metadanych z .pls w Swift 2 Xcode 7 - szybki, adres URL, metadane, radio

Piszę aplikację radiową i chcę pobrać metadane z adresu URL w formacie .pls i następującego kodu:

var PlayerItem: AVPlayerItem!
var asset :  AVAsset? // init with url of .pls format

PlayerItem = AVPlayerItem(asset: asset!)
PlayerItem.addObserver(self, forKeyPath: "timedMetadata" [...]

PlayerItem.timedMetadata - is always nil or 0

Co powinienem dodać, aby otrzymać metadaty?

Odpowiedzi:

0 dla odpowiedzi № 1

Implementacja Quick Swift 2:

var player: AVPlayer!
var playerItem: AVPlayerItem!

override func viewDidLoad() {
super.viewDidLoad()
....
playerItem = AVPlayerItem(URL: NSURL(string: <streamURL>)!)
player = AVPlayer(playerItem: playerItem)

// To be informed when metadata changes
playerItem.addObserver(self, forKeyPath: "timedMetadata", options: [], context: nil)
}

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
// Get medatata, making sure to support a wider range of characters
let origMetaTitle = (playerItem.timedMetadata?.first?.stringValue?.dataUsingEncoding(NSISOLatin1StringEncoding, allowLossyConversion: true))!
let convertedMetaTitle = String(data: origMeta, encoding: NSUTF8StringEncoding)!
....
}

deinit {
// Be a good citizen
playerItem.removeObserver(self, forKeyPath: "timedMetadata")
}