Warning, /maui/index-fm/src/widgets/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: appSettings.autoPlayPreviews
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         spacing: Maui.Style.space.medium
0047 
0048         Item
0049         {
0050             Layout.fillWidth: true
0051             Layout.fillHeight: true
0052 
0053             Layout.preferredHeight: 200
0054             Layout.preferredWidth: 200
0055 
0056             Maui.IconItem
0057             {
0058                 height: parent.height
0059                 width: parent.width
0060                 iconSizeHint: height
0061                 iconSource: iteminfo.icon
0062                 imageSource: iteminfo.thumbnail
0063             }
0064         }
0065 
0066         Maui.ListItemTemplate
0067         {
0068             Layout.fillWidth: true
0069             label1.text:  player.metaData.title
0070             label1.font.weight: Font.DemiBold
0071             label1.font.pointSize: Maui.Style.fontSizes.big
0072 
0073             label2.text: player.metaData.albumArtist || player.metaData.albumTitle
0074         }
0075 
0076         RowLayout
0077         {
0078                         Layout.fillWidth: true
0079 
0080                         ToolButton
0081                         {
0082                             icon.name: player.playbackState === MediaPlayer.PlayingState ? "media-playback-pause" : "media-playback-start"
0083                             onClicked: 
0084                             {
0085                                 if(player.playbackState === MediaPlayer.PlayingState)
0086                                     player.pause()
0087                                     else
0088                                         player.play()
0089                             }
0090                         }
0091         Slider
0092         {
0093             id: _slider
0094             Layout.fillWidth: true
0095             orientation: Qt.Horizontal
0096             from: 0
0097             to: 1000
0098             value: (1000 * player.position) / player.duration
0099             onMoved: player.seek((_slider.value / 1000) * player.duration)
0100         }
0101         }
0102     }
0103 }
0104 
0105