QMLビデオを停止し、再生が終了したら最後のフレームを表示しようとしています。誰もこれを行う方法を知っていますか? (申し訳ありませんが、これは聞こえるほど些細なことではないようです...)QMLで最後のフレームのビデオを一時停止する方法は?
現時点では、私の問題は、再生が行われた後、単にビデオ要素が目に見えない/隠れてしまうことです。 (onVisibleChanged
が呼び出されることはありません。)
私は私のコードでonStatusChanged
にハックを使用すると、ビデオが終了した後一瞬消え、その後、動画の終わりを示しています。私がやっている何
は単純です:
Video {
anchors.fill: parent
fillMode: VideoOutput.PreserveAspectFit;
source: "path/to/file"
autoPlay: true
onStatusChanged: {
console.warn("StatusChanged:"+status+"|"+MediaPlayer.Loaded)
if (status == MediaPlayer.EndOfMedia)
{
// seek a bit before the end of the video since the last frames
// are the same here, anyway
seek(metaData.duration-200)
play()
pause()
}
}
onVisibleChanged:
{
console.log(visible)
}
}
それは私が何かが欠けていている可能性がありますが、私はドキュメントで、このトピックに何かを見つけることができませんでした。また、別のMediaPlayer
とVideoOutput
を使用しても動作は変わりません。
私はWindows上で最新のQt 5.2(msvc2010 + OpenGL-build)を使用しています。
これは私たちが使用した回避策です。あなたの答えを受け入れるかどうかは、回避策であり実際の解決策ではないので、私は確信していません。 – anderas
個人的には、本当の解決策が出てくることを希望して私はそれを開いたままにしておきます!私はこの問題を探しているこのページを簡単に見つけました。 Qt Jiraのウィッシュリスト項目を作成しておくと便利な動作が得られる場合もあります。 – timday