NSView 的 libmpv intptr_t

libmpv intptr_t of an NSView

我正在尝试在 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。 那么如何将视频播放器嵌入 swift 视图?

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

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