1

カスタム ウィンドウ ビデオ プレーヤーに取り組んでいます。私が望む機能は、プレーヤーがビデオをバッファリングしているときにビデオプレーヤーの上に (またはその代わりに) ロード中の画像を表示し、プレーヤーがビデオの再生を開始したときにロード中の画像を削除することです。

しかし問題は、読み込み中の画像が画面に描画されると、プレーヤーがビデオの再生を開始しても消えないことです。

キャンバスを描画するために使用しているコードは次のとおりです。

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()

コード内のバグを見つけることができないので、誰か助けてください。

4

1 に答える 1