从tracksVLCKit上的信息获取编解码器和其他信息

问题描述 投票:0回答:1

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

这是我的代码

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中删除了无统计信息,并从黑名单过滤器中删除了统计信息。

有人遇到过这种情况,请知道解决方法吗?

swift vlc libvlc
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.