Law*_*nez 9 metadata id3 http-live-streaming ios swift
我在TableView中有一个音频URL列表,所以每次我点击didSelectRowAt这个方法上的每个单元格都会被调用
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Prepare Audio URL
let audioUrl = URL(string: (channelSelected.audioUrl?.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed))!)
let playerItem = AVPlayerItem(url: audioUrl!)
playerItem.addObserver(self, forKeyPath: "timedMetadata", options: .new, context: nil)
player = AVPlayer(playerItem: playerItem)
playerViewController = AVPlayerViewController()
playerViewController.player = player
present(playerViewController, animated: true, completion: {
self.playerViewController.player?.play()
})
}
Run Code Online (Sandbox Code Playgroud)
基于教程,我实现了观察值监听器
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
print("keypath = \(keyPath!)")
let avPlayerItem: AVPlayerItem = object as! AVPlayerItem
if let timedMetadata = avPlayerItem.timedMetadata {
print("Timed metadata = \(timedMetadata)")
} else {
print("Timed metadata nil")
}
}
Run Code Online (Sandbox Code Playgroud)
问题是timedMetadata总是零.帮助将不胜感激.
a.m*_*sri 10
您的代码工作正常,此问题的原因是由服务器端的问题引起的.
您可以使用此工具mp3tag编辑音频文件 - 添加元数据标签并将其上传到服务器.
例如,您可以尝试这些音频包含的元数据标签:
http://ice1.somafm.com/groovesalad-128-mp3
https://developer.jwplayer.com/jw-player/demos/basic/audio-metadata/assets/index.m3u8
要确认,上述文件应该可以正常使用您的代码.
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |