Warning, /maui/arca/src/controls/previewer/VideoPreview.qml is written in an unsupported language. File is not indexed.
0001 import QtQuick 2.9
0002 import QtQuick.Controls 2.2
0003 import QtQuick.Layouts 1.3
0004
0005 import QtMultimedia 5.8
0006
0007 import org.mauikit.controls 1.0 as Maui
0008
0009 Maui.Page
0010 {
0011 id: control
0012 property alias player : player
0013 headBar.visible: false
0014
0015 Video
0016 {
0017 id: player
0018 anchors.fill: parent
0019 source: currentUrl
0020 autoLoad: true
0021 autoPlay: true
0022 loops: 3
0023 property string codec : player.metaData.videoCodec
0024
0025 onCodecChanged:
0026 {
0027 infoModel.append({key:"Title", value: player.metaData.title})
0028 infoModel.append({key:"Camera", value: player.metaData.cameraModel})
0029 infoModel.append({key:"Zoom Ratio", value: player.metaData.digitalZoomRatio})
0030 infoModel.append({key:"Author", value: player.metaData.author})
0031 infoModel.append({key:"Audio Codec", value: player.metaData.audioCodec})
0032 infoModel.append({key:"Video Codec", value: player.metaData.videoCodec})
0033 infoModel.append({key:"Copyright", value: player.metaData.copyright})
0034 infoModel.append({key:"Duration", value: player.metaData.duration})
0035 infoModel.append({key:"Framerate", value: player.metaData.videoFrameRate})
0036 infoModel.append({key:"Year", value: player.metaData.year})
0037 infoModel.append({key:"Aspect Ratio", value: player.metaData.pixelAspectRatio})
0038 infoModel.append({key:"Resolution", value: player.metaData.resolution})
0039 }
0040
0041 ToolButton
0042 {
0043 visible: player.playbackState == MediaPlayer.StoppedState
0044 anchors.centerIn: parent
0045 icon.color: "transparent"
0046 flat: true
0047 icon.width: Maui.Style.iconSizes.huge
0048 icon.name: iteminfo.icon
0049 }
0050
0051 focus: true
0052 Keys.onSpacePressed: player.playbackState == MediaPlayer.PlayingState ? player.pause() : player.play()
0053 Keys.onLeftPressed: player.seek(player.position - 5000)
0054 Keys.onRightPressed: player.seek(player.position + 5000)
0055
0056 RowLayout
0057 {
0058 anchors.fill: parent
0059
0060 MouseArea
0061 {
0062 Layout.fillWidth: true
0063 Layout.fillHeight: true
0064 onDoubleClicked: player.seek(player.position - 5000)
0065 }
0066
0067 MouseArea
0068 {
0069 Layout.fillWidth: true
0070 Layout.fillHeight: true
0071 onClicked: player.playbackState === MediaPlayer.PlayingState ? player.pause() : player.play()
0072 }
0073
0074 MouseArea
0075 {
0076 Layout.fillWidth: true
0077 Layout.fillHeight: true
0078 onDoubleClicked: player.seek(player.position + 5000)
0079 }
0080 }
0081 }
0082
0083 footBar.visible: true
0084 footBar.background: null
0085
0086 footBar.middleContent : Slider
0087 {
0088 id: _slider
0089 Layout.fillWidth: true
0090 orientation: Qt.Horizontal
0091 from: 0
0092 to: 1000
0093 value: (1000 * player.position) / player.duration
0094
0095 onMoved: player.seek((_slider.value / 1000) * player.duration)
0096 }
0097 }