NSView的libmpv intptr_t

时间:2019-07-08 14:44:51

标签: c swift mpv

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

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

#menu {
   opacity: 0;
   transition: opacity 1s 0s;
}

#menu.visible {
   opacity: 1;
}

其中wrapper是用于视频播放器的包装视图。但是,由于swift并不意味着要使用指针,而且包装程序视图是据我所知的视图,因此我不知道如何将其转换为swift。

我试图像这样将NSView强制转换为int64_t wid = (intptr_t) self->wrapper;

UnsafePointer

,然后将let t = UnsafePointer(&view) 强制转换为tintptr_t,但此转换无效。它说此值不能转换为Int。 那么如何将视频播放器嵌入到快速视图中?

1 个答案:

答案 0 :(得分:1)

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

我认为您可以直接传递&view,它将自动桥接到UnsafeRawPointer。但是,现在您必须要小心,因为必须确保VC的生存期至少与mpv需要的生存期一样长。