Я создаю музыкальный плеер для Ubuntu Touch в QML, и у меня есть некоторые вещи, на которые я был бы признателен за помощь, поскольку я новичок в QML.Получите метаданные из делегированных файлов с использованием QML
У меня есть список треков из каталога, но я хочу показать метаданные (имя исполнителя, название дорожки, год, альбом и т. Д.) Вместо имени файла.
Использование Qt.Multimedia в состоянии получить метаданные из текущей воспроизводимой дорожки, но я не могу найти, как это сделать для каждого файла из моих делегированных файлов FolderListModel.
Как бы я это сделал?
Это текущий код:
Column {
anchors.centerIn: parent
anchors.fill: parent
ListView {
id: musicFolder
FolderListModel {
id: folderModel
folder: musicDir
showDirs: false
nameFilters: ["*.ogg","*.mp3","*.oga","*.wav"]
}
width: parent.width
height: parent.height
model: folderModel
delegate: ListItem.Subtitled {
text: fileName
subText: "Artist: "
onClicked: {
console.debug('Debug: User pressed '+musicDir+fileName)
playMusic.source = musicDir+fileName
playMusic.play()
trackInfo.text = playMusic.metaData.albumArtist+" - "+playMusic.metaData.title // show track meta data
}
}
}
}
Я не уверен в QtMultimedia, но в Phonon вам нужно было сначала воспроизвести файл, прежде чем вы сможете извлечь метаданные. Чтобы явно извлечь данные из всех файлов в папке, вам придется использовать внешние библиотеки, такие как http://taglib.github.io/ Является ли поведение одинаковым в QtMultimedia? –
Привет, снова Амит, ну да, похоже, мне нужно сначала сыграть каждый трек, прежде чем извлекать метаданные с помощью QtMultimedia. Но он использует довольно много энергии и сделал приложение очень медленным, поэтому я хотел посмотреть, есть ли другие варианты, которые можно было бы сделать вместо этого. –