gpt4 book ai didi

ios - HLS 元数据 ID3 标签不起作用

转载 作者:IT王子 更新时间:2023-10-29 05:42:24 26 4
gpt4 key购买 nike

我在 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()
})
}

然后根据教程,我实现了观察值监听器

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")
}
}

问题是 timedMetadata 总是 nil。帮助将不胜感激。

最佳答案

您的代码运行正常,出现此问题的原因是服务器端的问题。

你可以使用这个工具mp3tag编辑音频文件 - 添加元数据标签并将其上传到服务器。

例如,您可以尝试这些包含元数据标签的音频:

http://ice1.somafm.com/groovesalad-128-mp3

https://developer.jwplayer.com/jw-player/demos/basic/audio-metadata/assets/index.m3u8

确认一下,上述文件应该可以与您的代码一起正常工作。

关于ios - HLS 元数据 ID3 标签不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49663296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com