aboutsummaryrefslogtreecommitdiffstats
path: root/momiplay.qml
diff options
context:
space:
mode:
authorNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2024-09-28 03:41:20 +0900
committerNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2024-09-29 13:19:34 +0900
commitb4202d3d5aca7842314edbf010e2e8605a6a9e24 (patch)
tree542146f5e7bcc613fd019ead16c57c94ea65f83f /momiplay.qml
parent0404436ada9d6bb695ba1da5b5a2bb68538c2b66 (diff)
Rework momplay to migrate to Qt6
QtMultimedia has big change from Qt5 to Q6. Existing momiplay is difficult to migrate to Qt6. New momiplay is made from Qt Media Player Example. As a result, it get video player capability. Bug-AGL: SPEC-5162 Change-Id: Ib754f914fc9d5534721f0d29df689ac11034025a Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
Diffstat (limited to 'momiplay.qml')
-rw-r--r--momiplay.qml264
1 files changed, 0 insertions, 264 deletions
diff --git a/momiplay.qml b/momiplay.qml
deleted file mode 100644
index 6b5bfd2..0000000
--- a/momiplay.qml
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright (C) 2016 The Qt Company Ltd.
- * Copyright (C) 2019 Yoshito Momiyama
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtQuick.Window 2.12
-import QtQuick.Layouts 1.1
-import QtQuick.Controls 2.0
-import QtMultimedia 5.6
-import MediaPlayer 1.0
-
-ApplicationWindow {
- id: root
- visible: true
- width: 1920
- height: 1080
- color: "#222222"
- title: qsTr("momiplayer")
-
- MediaPlayer {
- id: player
- audioRole: MediaPlayer.MusicRole
- autoLoad: true
- playlist: playlist
- function time2str(value) {
- return Qt.formatTime(new Date(value), 'mm:ss')
- }
- onPositionChanged: slider.value = player.position
- }
-
- Item {
- x: 0
- y: 0
- width: 920
- height: 1080
- clip: true
-
- Item {
- id: infopanel
- x: 30
- y: 100
- height :400
- width : 920-30
-
- ColumnLayout {
- anchors.fill: parent
- Label {
- id: title
- font.pixelSize: 48
- color: '#ffffffff'
- Layout.alignment: Layout.right
- text: "Title: " + (player.metaData.title ? player.metaData.title : 'No Data')
- horizontalAlignment: Label.AlignHCenter
- verticalAlignment: Label.AlignVCenter
- }
- Label {
- id: artist
- font.pixelSize: 48
- color: '#ffffffff'
- Layout.alignment: Layout.right
- text: "Artist: " + (player.metaData.contributingArtist ? player.metaData.contributingArtist : 'No Data')
- horizontalAlignment: Label.AlignHCenter
- verticalAlignment: Label.AlignVCenter
- }
- Label {
- id: audiocodec
- font.pixelSize: 38
- color: '#ffffffff'
- Layout.alignment: Layout.right
- text: "Codec: " + (player.metaData.audioCodec ? player.metaData.audioCodec : 'No Data')
- horizontalAlignment: Label.AlignHCenter
- verticalAlignment: Label.AlignVCenter
- }
- Label {
- id: audiobitrate
- font.pixelSize: 38
- color: '#ffffffff'
- Layout.alignment: Layout.right
- text: "BitRate: " + (player.metaData.audioBitRate ? (player.metaData.audioBitRate + 'bps') : 'No Data')
- horizontalAlignment: Label.AlignHCenter
- verticalAlignment: Label.AlignVCenter
- }
- }
-
- }
-
- Item {
- x: 0
- y: 100+512
- height :300
- width : 920
- Rectangle {
- anchors.fill: parent
- color: '#444444'
- //opacity: 0.75
- }
-
- ColumnLayout {
- anchors.fill: parent
- anchors.margins: root.width * 0.02
- Item {
- Layout.fillWidth: true
- Layout.fillHeight: true
- Row {
- spacing: 20
- ToggleButton {
- id: random
- offImage: './images/AGL_MediaPlayer_Shuffle_Inactive.svg'
- onImage: './images/AGL_MediaPlayer_Shuffle_Active.svg'
- }
- ToggleButton {
- id: loop
- offImage: './images/AGL_MediaPlayer_Loop_Inactive.svg'
- onImage: './images/AGL_MediaPlayer_Loop_Active.svg'
- }
- }
- }
- Slider {
- id: slider
- Layout.fillWidth: true
- to: player.duration
- Label {
- id: position
- anchors.left: parent.left
- anchors.bottom: parent.top
- font.pixelSize: 32
- text: player.time2str(player.position)
- }
- Label {
- id: duration
- anchors.right: parent.right
- anchors.bottom: parent.top
- font.pixelSize: 32
- text: player.time2str(player.duration)
- }
- onPressedChanged: player.seek(value)
- }
- RowLayout {
- Layout.fillHeight: true
- Item { Layout.fillWidth: true }
- ImageButton {
- offImage: './images/AGL_MediaPlayer_BackArrow.svg'
- onClicked: playlist.previous()
- }
- ImageButton {
- id: play
- offImage: './images/AGL_MediaPlayer_Player_Play.svg'
- onClicked: player.play()
- states: [
- State {
- when: player.playbackState === MediaPlayer.PlayingState
- PropertyChanges {
- target: play
- offImage: './images/AGL_MediaPlayer_Player_Pause.svg'
- onClicked: player.pause()
- }
- }
- ]
- }
- ImageButton {
- offImage: './images/AGL_MediaPlayer_ForwardArrow.svg'
- onClicked: playlist.next()
- }
-
- Item { Layout.fillWidth: true }
- }
- }
- }
- }
-
- Item {
- x: 920
- y: 0
- width: 1000
- height: 1080
- ListView {
- anchors.rightMargin: 0
- anchors.bottomMargin: 0
- anchors.leftMargin: 0
- anchors.topMargin: 0
- anchors.fill: parent
- clip: true
- header: Label {
- x: 50
- text: 'PLAYLIST'
- opacity: 0.5
- }
- model: PlaylistWithMetadata {
- source: playlist
- }
- currentIndex: playlist.currentIndex
-
- delegate: MouseArea {
- id: delegate
- width: ListView.view.width
- height: ListView.view.height / 4
- RowLayout {
- anchors.fill: parent
- anchors.leftMargin: 10
- anchors.rightMargin: 50
- Image {
- source: model.coverArt
- fillMode: Image.PreserveAspectFit
- Layout.preferredWidth: delegate.height
- Layout.preferredHeight: delegate.height
- }
- ColumnLayout {
- Layout.fillWidth: true
- Label {
- Layout.fillWidth: true
- text: model.title
- color: '#66FF99'
- font.pixelSize: 48
- }
- Label {
- Layout.fillWidth: true
- text: model.artist
- color: '#66FF99'
- font.pixelSize: 32
- }
- }
- Label {
- text: player.time2str(model.duration)
- color: '#66FF99'
- font.pixelSize: 32
- }
- }
- onClicked: {
- playlist.currentIndex = model.index
- player.play()
- }
- }
-
- highlight: Rectangle {
- color: 'white'
- opacity: 0.25
- }
- }
- }
-
- Playlist {
- id: playlist
- playbackMode: random.checked ? Playlist.Random : loop.checked ? Playlist.Loop : Playlist.Sequential
-
- Component.onCompleted: {
- playlist.addItems(mediaFiles)
- }
- }
-}