从轨道获取编解码器和其他信息VLCKit上的信息



我正在尝试使用 TVVLCKit 和 MobileVLCKit 获取远程媒体的元信息或轨道信息,但跟踪信息只返回一个空数组。

这是我的代码

import UIKit
import TVVLCKit
class ViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDelegate {
var mediaPlayer = VLCMediaPlayer()
@IBOutlet weak var videoView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string : "https://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_10mb.mp4")
let media = VLCMedia(url: url!)
mediaPlayer.media = media
mediaPlayer.delegate = self
mediaPlayer.drawable = self.videoView
mediaPlayer.play()
mediaPlayer.media.parse(withOptions: VLCMediaParsingOptions(VLCMediaParseLocal | VLCMediaFetchLocal | VLCMediaParseNetwork | VLCMediaFetchNetwork))
print("Tracks information = (mediaPlayer.media.tracksInformation)")
print("Meta Dictionary = (mediaPlayer.media.metaDictionary)")
}

}

输出为

Tracks information = []
Meta Dictionary = [AnyHashable("title"): big_buck_bunny_720p_10mb.mp4]

我自己编译了TVVLCKit,从VLCLibrary.m中删除了无统计数据,并从黑名单过滤器中删除了统计数据。

有没有人遇到过这个问题并知道解决方案?

您需要等到 VLC 完成解析媒体。解析是异步的,因此一旦您请求,您正在查找的数据就不会完成创建。等待相应的事件被触发,然后获取信息。统计模块与所有这些无关。统计信息仅用于播放(例如处理了多少数据包,..(。

最新更新