libmpv intptr_t NSView - PullRequest
       30

libmpv intptr_t NSView

0 голосов
/ 08 июля 2019

Я пытаюсь использовать libmpv в быстром проекте.У меня все связано, и я пытаюсь следовать базовому примеру .

Проблема в том, что для показа видео мне нужно передать целочисленный указатель (intptr_t) на команда wid .В Objective-C это будет сделано, как показано в приведенном выше примере:

int64_t wid = (intptr_t) self->wrapper;

, где wrapper - это представление оболочки, предназначенное для видеопроигрывателя.Тем не менее, поскольку swift не предназначен для работы с указателями, а представление обертки, как я понимаю, одно, я не знаю, как перевести это в swift.

Я пытался привести NSView к UnsafePointerкак это

let t = UnsafePointer(&view)

, а затем приведите t к intptr_t или Int, но это преобразование не работает.Это говорит, что это значение не может быть преобразовано в Int.Итак, как я могу встроить видео плеер в быстрый просмотр?

1 Ответ

1 голос
/ 08 июля 2019

Похоже, вам не нужен int-указатель. mpv_set_option() API, который вы пытаетесь вызвать, на самом деле занимает void *. В Swift это обозначено как UnsafeRawPointer.

Я думаю, что вы можете просто передать &view напрямую, что автоматически приведет к UnsafeRawPointer. Однако теперь вы должны быть осторожны, потому что вы должны обеспечить, чтобы срок службы вашего VC длился, по крайней мере, столько, сколько нужно mpv.

...