Я пытаюсь использовать libmpv в быстром проекте. У меня все подключено, и я пытаюсь следовать базовому пример.
Проблема в том, что для показа видео я должен передать целочисленный указатель (intptr_t) в широкая команда. В Objective-C это будет сделано, как подсказывает приведенный выше пример:
int64_t wid = (intptr_t) self->wrapper;
где обертка — это представление обертки, предназначенное для видеоплеера. Однако, поскольку Swift не предназначен для работы с указателями, а вид-оболочка, как я понимаю, один из них, я не знаю, как перевести это на Swift.
Я попытался преобразовать NSView в UnsafePointer вот так
let t = UnsafePointer(&view)
а затем преобразовать t в intptr_t или Int, но это преобразование не работает. Он говорит, что это значение не может быть преобразовано в Int.
Итак, как я могу встроить видеоплеер в быстрый просмотр?





Не похоже, что вам вообще нужен указатель int. mpv_set_option() API, который вы пытаетесь вызвать, на самом деле принимает void *. В Swift это соединено как UnsafeRawPointer.
Я думаю, вы можете просто передать &view напрямую, что должно автоматически соединяться с UnsafeRawPointer. Однако теперь вы должны быть осторожны, потому что вы должны убедиться, что срок службы вашей ВК длится как минимум столько, сколько mpv в ней нуждается.
Я думаю, что вы правы, по крайней мере, я сделал, как вы предложили, и у меня не было никаких ошибок. Однако видео по-прежнему не воспроизводится, но я не думаю, что проблема заключается в заданном мной вопросе.