From c69b704a61f852b40c96affadd0964acddaf7241 Mon Sep 17 00:00:00 2001 From: mappu Date: Mon, 11 Nov 2024 19:05:23 +1300 Subject: [PATCH] multimedia: add qt6 version of the example --- .gitignore | 1 + examples/libraries/qt6-multimedia/README.md | 3 ++ examples/libraries/qt6-multimedia/main.go | 41 ++++++++++++++++++ ...pixabay-public-domain-strong-hit-36455.mp3 | Bin 0 -> 22080 bytes 4 files changed, 45 insertions(+) create mode 100644 examples/libraries/qt6-multimedia/README.md create mode 100644 examples/libraries/qt6-multimedia/main.go create mode 100644 examples/libraries/qt6-multimedia/pixabay-public-domain-strong-hit-36455.mp3 diff --git a/.gitignore b/.gitignore index ef3f3b3d..fa0d28ee 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ examples/libraries/extras-scintillaedit/extras-scintillaedit examples/libraries/qt-multimedia/qt-multimedia examples/libraries/qt-network/qt-network examples/libraries/qt-printsupport/qt-printsupport +examples/libraries/qt6-multimedia/qt6-multimedia examples/libraries/restricted-extras-qscintilla/restricted-extras-qscintilla # android temporary build files diff --git a/examples/libraries/qt6-multimedia/README.md b/examples/libraries/qt6-multimedia/README.md new file mode 100644 index 00000000..7c98ff8a --- /dev/null +++ b/examples/libraries/qt6-multimedia/README.md @@ -0,0 +1,3 @@ +The audio file `pixabay-public-domain-strong-hit-36455.mp3` in this directory was sourced from: https://pixabay.com/sound-effects/strong-hit-36455/ + +It was placed into the public domain by the author @axilirate . diff --git a/examples/libraries/qt6-multimedia/main.go b/examples/libraries/qt6-multimedia/main.go new file mode 100644 index 00000000..826dbc84 --- /dev/null +++ b/examples/libraries/qt6-multimedia/main.go @@ -0,0 +1,41 @@ +package main + +import ( + "log" + "os" + "path/filepath" + + qt "github.com/mappu/miqt/qt6" + "github.com/mappu/miqt/qt6/multimedia" +) + +func main() { + + qt.NewQApplication(os.Args) + + srcFile, err := filepath.Abs("pixabay-public-domain-strong-hit-36455.mp3") + if err != nil { + panic(err) + } + + player := multimedia.NewQMediaPlayer() + output := multimedia.NewQAudioOutput() + + player.SetAudioOutput(output) + player.SetSource(qt.QUrl_FromLocalFile(srcFile)) + output.SetVolume(50) + player.OnPlaybackStateChanged(func(s multimedia.QMediaPlayer__PlaybackState) { + + log.Printf("- Playback state: %v", s) + + if s == multimedia.QMediaPlayer__StoppedState { + log.Printf("Playback complete.") + qt.QCoreApplication_Exit() + } + }) + + log.Printf("Playback starting...") + player.Play() + + qt.QApplication_Exec() +} diff --git a/examples/libraries/qt6-multimedia/pixabay-public-domain-strong-hit-36455.mp3 b/examples/libraries/qt6-multimedia/pixabay-public-domain-strong-hit-36455.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e7ed00635b34c746570a13c563f2ca9b4272ab3a GIT binary patch literal 22080 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 Nh4FtAb^aHQ{|~N7r3C;0 literal 0 HcmV?d00001