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_t
或 Int
但此转换不起作用。它说此值无法转换为 Int
。
那么如何将视频播放器嵌入 swift 视图?
看起来您根本不需要 int 指针。您尝试调用的 mpv_set_option() API
实际上需要一个 void *
。在 Swift 中,这桥接为 UnsafeRawPointer
。
我想你可以直接传入 &view
,它应该会自动桥接到 UnsafeRawPointer
。但是,现在您必须小心,因为您必须确保 VC 的生命周期至少持续到 mpv
需要的时间。
我正在尝试在 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_t
或 Int
但此转换不起作用。它说此值无法转换为 Int
。
那么如何将视频播放器嵌入 swift 视图?
看起来您根本不需要 int 指针。您尝试调用的 mpv_set_option() API
实际上需要一个 void *
。在 Swift 中,这桥接为 UnsafeRawPointer
。
我想你可以直接传入 &view
,它应该会自动桥接到 UnsafeRawPointer
。但是,现在您必须小心,因为您必须确保 VC 的生命周期至少持续到 mpv
需要的时间。