Warning, /maui/arca/src/controls/previewer/AudioPreview.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.3 as Maui
0008 
0009 Item
0010 {
0011     id: control
0012 
0013     property alias player: player
0014 
0015     MediaPlayer
0016     {
0017         id: player
0018         source: currentUrl
0019         autoLoad: true
0020         autoPlay: true
0021         property string title : player.metaData.title
0022 
0023         onTitleChanged:
0024         {
0025             infoModel.append({key:"Title", value: player.metaData.title})
0026             infoModel.append({key:"Artist", value: player.metaData.albumArtist})
0027             infoModel.append({key:"Album", value: player.metaData.albumTitle})
0028             infoModel.append({key:"Author", value: player.metaData.author})
0029             infoModel.append({key:"Codec", value: player.metaData.audioCodec})
0030             infoModel.append({key:"Copyright", value: player.metaData.copyright})
0031             infoModel.append({key:"Duration", value: player.metaData.duration})
0032             infoModel.append({key:"Track", value: player.metaData.trackNumber})
0033             infoModel.append({key:"Year", value: player.metaData.year})
0034             infoModel.append({key:"Rating", value: player.metaData.userRating})
0035             infoModel.append({key:"Lyrics", value: player.metaData.lyrics})
0036             infoModel.append({key:"Genre", value: player.metaData.genre})
0037             infoModel.append({key:"Artwork", value: player.metaData.coverArtUrlLarge})
0038         }
0039     }
0040 
0041 
0042     ColumnLayout
0043     {
0044         anchors.centerIn: parent
0045         width: Math.min(parent.width, 200)
0046         height: Math.min(400, parent.height)
0047         spacing: Maui.Style.space.big
0048 
0049         Item
0050         {
0051             Layout.fillWidth: true
0052             Layout.fillHeight: true
0053 
0054             Maui.IconItem
0055             {
0056                 height: parent.height
0057                 width: parent.width
0058                 iconSizeHint: height
0059                 iconSource: iteminfo.icon
0060                 imageSource: iteminfo.thumbnail
0061             }
0062         }
0063 
0064         Maui.ListItemTemplate
0065         {
0066             Layout.fillWidth: true
0067             label1.text:  player.metaData.title
0068             label1.font.pointSize: Maui.Style.fontSizes.huge
0069             label2.font.pointSize: Maui.Style.fontSizes.big
0070             label1.horizontalAlignment:Qt.AlignHCenter
0071             label2.horizontalAlignment:Qt.AlignHCenter
0072 
0073             label2.text: player.metaData.albumArtist || player.metaData.albumTitle
0074         }
0075 
0076         Slider
0077         {
0078             id: _slider
0079             Layout.fillWidth: true
0080             orientation: Qt.Horizontal
0081             from: 0
0082             to: 1000
0083             value: (1000 * player.position) / player.duration
0084             onMoved: player.seek((_slider.value / 1000) * player.duration)
0085         }
0086     }
0087 
0088 }
0089 
0090