Warning, /maui/index-fm/src/widgets/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: appSettings.autoPlayPreviews 0022 loops: 3 0023 flushMode: VideoOutput.FirstFrame 0024 property string codec : player.metaData.videoCodec 0025 0026 onCodecChanged: 0027 { 0028 infoModel.append({key:"Title", value: player.metaData.title}) 0029 infoModel.append({key:"Camera", value: player.metaData.cameraModel}) 0030 infoModel.append({key:"Zoom Ratio", value: player.metaData.digitalZoomRatio}) 0031 infoModel.append({key:"Author", value: player.metaData.author}) 0032 infoModel.append({key:"Audio Codec", value: player.metaData.audioCodec}) 0033 infoModel.append({key:"Video Codec", value: player.metaData.videoCodec}) 0034 infoModel.append({key:"Copyright", value: player.metaData.copyright}) 0035 infoModel.append({key:"Duration", value: player.metaData.duration}) 0036 infoModel.append({key:"Framerate", value: player.metaData.videoFrameRate}) 0037 infoModel.append({key:"Year", value: player.metaData.year}) 0038 infoModel.append({key:"Aspect Ratio", value: player.metaData.pixelAspectRatio}) 0039 infoModel.append({key:"Resolution", value: player.metaData.resolution}) 0040 } 0041 0042 ToolButton 0043 { 0044 visible: player.playbackState == MediaPlayer.StoppedState 0045 anchors.centerIn: parent 0046 icon.color: "transparent" 0047 flat: true 0048 icon.width: Maui.Style.iconSizes.huge 0049 icon.name: iteminfo.icon 0050 } 0051 0052 focus: true 0053 Keys.onSpacePressed: player.playbackState == MediaPlayer.PlayingState ? player.pause() : player.play() 0054 Keys.onLeftPressed: player.seek(player.position - 5000) 0055 Keys.onRightPressed: player.seek(player.position + 5000) 0056 0057 RowLayout 0058 { 0059 anchors.fill: parent 0060 0061 MouseArea 0062 { 0063 Layout.fillWidth: true 0064 Layout.fillHeight: true 0065 onDoubleClicked: player.seek(player.position - 5000) 0066 } 0067 0068 MouseArea 0069 { 0070 Layout.fillWidth: true 0071 Layout.fillHeight: true 0072 onClicked: player.playbackState === MediaPlayer.PlayingState ? player.pause() : player.play() 0073 } 0074 0075 MouseArea 0076 { 0077 Layout.fillWidth: true 0078 Layout.fillHeight: true 0079 onDoubleClicked: player.seek(player.position + 5000) 0080 } 0081 } 0082 } 0083 0084 footBar.visible: true 0085 footBar.background: null 0086 0087 footBar.leftContent: ToolButton 0088 { 0089 icon.name: player.playbackState === MediaPlayer.PlayingState ? "media-playback-pause" : "media-playback-start" 0090 onClicked: 0091 { 0092 if(player.playbackState === MediaPlayer.PlayingState) 0093 player.pause() 0094 else 0095 player.play() 0096 } 0097 } 0098 footBar.middleContent : Slider 0099 { 0100 id: _slider 0101 Layout.fillWidth: true 0102 orientation: Qt.Horizontal 0103 from: 0 0104 to: 1000 0105 value: (1000 * player.position) / player.duration 0106 0107 onMoved: player.seek((_slider.value / 1000) * player.duration) 0108 } 0109 }