【问题标题】:libmpv intptr_t of an NSViewNSView 的 libmpv intptr_t
【发布时间】:2019-07-08 23:01:23
【问题描述】:

我正在尝试在 swift 项目中使用 libmpv。我已将所有内容联系起来,并尝试遵循基本的example

问题是,要显示视频,我必须将整数指针 (intptr_t) 传递给 wid command。在 Objective-C 中,这将按照上面的示例提示完成:

int64_t wid = (intptr_t) self->wrapper;

其中 wrapper 是用于视频播放器的包装视图。但是,由于 swift 并不意味着使用指针,并且包装器视图是我理解的一种,我不知道如何将其翻译成 swift。

我尝试像这样将 NSView 转换为 UnsafePointer

let t = UnsafePointer(&view)

然后将t 转换为intptr_tInt,但这种转换不起作用。它说这个值不能转换为Int。 那么如何在快速视图中嵌入视频播放器呢?

【问题讨论】:

    标签: c swift mpv


    【解决方案1】:

    看起来你根本不需要一个 int 指针。您尝试调用的mpv_set_option() API 实际上需要void *。在 Swift 中,这被桥接为 UnsafeRawPointer

    我认为你可以直接传入&view,它应该会自动桥接到UnsafeRawPointer。但是,现在您必须小心,因为您必须确保您的 VC 的生命周期至少持续到 mpv 需要它的时间。

    【讨论】:

    • 我认为你是对的,至少我按照你的建议做了,我没有得到任何错误。但是,视频仍然无法播放,但我认为问题不在于我提出的问题。
    猜你喜欢
    • 2016-05-06
    • 1970-01-01
    • 2014-06-02
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2017-04-17
    • 2011-04-26
    相关资源
    最近更新 更多