summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoris Verria <doris.verria@qt.io>2021-12-09 13:48:27 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-12-09 21:26:56 +0000
commit142699fe2bd019c084d877b6b9e878f9cf03fee4 (patch)
treeb14ad81eaffa816cd42c5ddd9ae5ee9057261674
parent80be54dd617763956c430e2bbbe7366681c35f11 (diff)
downloadqtmultimedia-142699fe2bd019c084d877b6b9e878f9cf03fee4.tar.gz
MediaPlayer example: Display track-specific metadata
Update the metadata information to show track-specific metadata for the active tracks, besides the media's metadata. Add a missing signal emmission on darwin's mediaplayer. Change-Id: I0513d3ab0c2b62cf74ef060bc1367e2589f68bcd Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit af3286225434fd995b4dfdcb6ebb379b6ffa741d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--examples/multimedia/video/mediaplayer/MetadataInfo.qml19
-rw-r--r--examples/multimedia/video/mediaplayer/main.qml12
-rw-r--r--src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm1
3 files changed, 24 insertions, 8 deletions
diff --git a/examples/multimedia/video/mediaplayer/MetadataInfo.qml b/examples/multimedia/video/mediaplayer/MetadataInfo.qml
index aea0fd1df..5019c1759 100644
--- a/examples/multimedia/video/mediaplayer/MetadataInfo.qml
+++ b/examples/multimedia/video/mediaplayer/MetadataInfo.qml
@@ -57,14 +57,19 @@ Item {
id: root
implicitWidth: 200
+ function clear() {
+ elements.clear();
+ }
+
function read(metadata) {
- elements.clear()
- for (var key of metadata.keys()) {
- if (metadata.stringValue(key)) {
- elements.append(
- { name: metadata.metaDataKeyToString(key)
- , value: metadata.stringValue(key)
- })
+ if (metadata) {
+ for (var key of metadata.keys()) {
+ if (metadata.stringValue(key)) {
+ elements.append(
+ { name: metadata.metaDataKeyToString(key)
+ , value: metadata.stringValue(key)
+ })
+ }
}
}
}
diff --git a/examples/multimedia/video/mediaplayer/main.qml b/examples/multimedia/video/mediaplayer/main.qml
index 0bbf672ac..ea31ba2ed 100644
--- a/examples/multimedia/video/mediaplayer/main.qml
+++ b/examples/multimedia/video/mediaplayer/main.qml
@@ -73,6 +73,14 @@ Window {
MediaPlayer {
id: mediaPlayer
+
+ function updateMetadata() {
+ metadataInfo.clear();
+ metadataInfo.read(mediaPlayer.metaData);
+ metadataInfo.read(mediaPlayer.audioTracks[mediaPlayer.activeAudioTrack]);
+ metadataInfo.read(mediaPlayer.videoTracks[mediaPlayer.activeVideoTrack]);
+ }
+
videoOutput: videoOutput
audioOutput: AudioOutput {
id: audio
@@ -81,7 +89,7 @@ Window {
}
onErrorOccurred: { mediaErrorText.text = mediaPlayer.errorString; mediaError.open() }
- onMetaDataChanged: { metadataInfo.read(mediaPlayer.metaData) }
+ onMetaDataChanged: { updateMetadata() }
onTracksChanged: {
audioTracksInfo.read(mediaPlayer.audioTracks);
audioTracksInfo.selectedTrack = mediaPlayer.activeAudioTrack;
@@ -89,7 +97,9 @@ Window {
videoTracksInfo.selectedTrack = mediaPlayer.activeVideoTrack;
subtitleTracksInfo.read(mediaPlayer.subtitleTracks);
subtitleTracksInfo.selectedTrack = mediaPlayer.activeSubtitleTrack;
+ updateMetadata()
}
+ onActiveTracksChanged: { updateMetadata() }
}
PlayerMenuBar {
diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
index 0b71880aa..311a87a31 100644
--- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
+++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
@@ -1163,6 +1163,7 @@ void AVFMediaPlayer::setActiveTrack(QPlatformMediaPlayer::TrackType type, int in
}
for (int i = 0; i < t.count(); ++i)
t.at(i).enabled = (i == index);
+ emit activeTracksChanged();
}
int AVFMediaPlayer::activeTrack(QPlatformMediaPlayer::TrackType type)