カスタム ウィンドウ ビデオ プレーヤーに取り組んでいます。私が望む機能は、プレーヤーがビデオをバッファリングしているときにビデオプレーヤーの上に (またはその代わりに) ロード中の画像を表示し、プレーヤーがビデオの再生を開始したときにロード中の画像を削除することです。
しかし問題は、読み込み中の画像が画面に描画されると、プレーヤーがビデオの再生を開始しても消えないことです。
キャンバスを描画するために使用しているコードは次のとおりです。
function draw_canvas()
m.canvas.AllowUpdates(false)
m.canvas.Clear()
m.canvas.SetLayer(0, m.canvasLayers.background)
if m.isLoadingVideo = true
m.canvas.SetLayer(1, [m.canvasLayers.frameImage, m.canvasLayers.nowLoadingImage])
else if m.isLoadingVideo = false
m.canvas.SetLayer(1, [m.canvasLayers.frameImage])
end if
m.canvas.AllowUpdates(true)
end function
イベント ループでこの draw_canvas 関数を呼び出すコードは次のとおりです。
if type(msg) = "roVideoPlayerEvent"
if msg.GetMessage() = "start of play"
m.isLoadingVideo = false
m.drawCanvas()
else if msg.GetMessage() = "startup progress"
if m.isLoadingVideo <> true
m.isLoadingVideo = true
m.drawCanvas()
end if
end if
end if
roVideoPlayer は、アプリケーションの開始とともに動作を開始し、現在読み込み中の画像と同じ座標に配置されます。
そして、ここに私のコントローラー関数のコードがあります:
m.drawCanvas()
m.videoPlayer.Play()
return m.eventLoop()
コード内のバグを見つけることができないので、誰か助けてください。