私は iOS 用のラジオ アプリを開発しており、ノルウェー語の文字「ÆØÅ」をサポートするエンコーディングを使用して、オーディオ ストリームからメタデータを解析できるようにする必要があります。
AVPlayerItem で timedMetaData を使用すると、これらの 3 文字は「ÃÃÃã」として表示されます。
timedMetaData アイテムの値 (stringValue ではない) のエンコーディングを変更する方法を知っている人はいますか? または、生の値を取得する方法は?
コード例:
private var url = ""
private var player: AVPlayer!
private var playerItem: AVPlayerItem!
playerItem = AVPlayerItem(URL: NSURL(string: url)!)
player = AVPlayer(playerItem: playerItem)
playerItem.addObserver(self, forKeyPath: "timedMetadata", options: NSKeyValueObservingOptions.New, context: nil)
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
guard keyPath == "timedMetadata" else { return }
for item in playerItem.timedMetadata! {
if item.commonKey == "title" {
let value = item.value
print(value)
//metadata = item.stringValue!
} else {
print(item.key)
}
}
}