Я пытаюсь отобразить видео на панели с помощью racket/gui
. Похоже, что библиотека для использования видео. Класс video-player%
распространяется на frame%
, который не будет содержаться внутри панели, поэтому я предполагаю, что мне нужно использовать видеоплеер-сервер%. Это правильно?
Похоже, что у video-player-server%
есть метод set-canvas
, который выглядит как то, что я хочу, однако, если я предоставляю ему холст, я получаю сообщение об ошибке, говорящее, что get-video-width
не определено на холсте. Есть ли подкласс canvas
, который мне не хватает?
Это то, что я придумал до сих пор.
#lang racket/gui
(require video/base video/player)
(define video (clip "toystory.mp4"))
(define video-server (new video-player-server%
(video video)))
(define (make-video parent)
(define panel (new panel%
(parent parent)))
(define canvas (new canvas%
(min-width 300)
(parent panel)))
; The problem appears to be with this line
(send video-server set-canvas canvas)
(displayln (send video-server get-fps))
panel)
(provide make-video)