summaryrefslogtreecommitdiffstats
path: root/src/multimedia/doc/snippets/multimedia-snippets
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@qt.io>2016-05-13 17:13:03 +0200
committerYoann Lopes <yoann.lopes@qt.io>2016-06-03 21:11:58 +0000
commitfe46759fc0a39418a3b5f32cf78a162c35a7aef7 (patch)
treeb043309dc6ee6a3de2b7477113125adda6ae1911 /src/multimedia/doc/snippets/multimedia-snippets
parent78a73643a31a761ada8cfafa80ddf2fb916c1d6a (diff)
Add new volume conversion API.
All Qt Multimedia volume APIs expect a linear volume factor. However, UI volume controls should typically use a logarithmic or cubic scale to match how the human ear perceives loudness. The new helper function (C++ and QML) provides a way to do the conversion from one scale to another. Change-Id: If7795426b728ab0e8fd6635988dbc9be795e3e5e Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Diffstat (limited to 'src/multimedia/doc/snippets/multimedia-snippets')
-rw-r--r--src/multimedia/doc/snippets/multimedia-snippets/audio.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/multimedia/doc/snippets/multimedia-snippets/audio.cpp b/src/multimedia/doc/snippets/multimedia-snippets/audio.cpp
index 310206405..736d1b306 100644
--- a/src/multimedia/doc/snippets/multimedia-snippets/audio.cpp
+++ b/src/multimedia/doc/snippets/multimedia-snippets/audio.cpp
@@ -47,6 +47,7 @@
#include "qaudiooutput.h"
#include "qaudioprobe.h"
#include "qaudiodecoder.h"
+#include "qmediaplayer.h"
class AudioInputExample : public QObject {
Q_OBJECT
@@ -247,3 +248,18 @@ void AudioDecodingExample::decode()
// Now wait for bufferReady() signal and call decoder->read()
//! [Local audio decoding]
}
+
+QMediaPlayer player;
+
+//! [Volume conversion]
+void applyVolume(int volumeSliderValue)
+{
+ // volumeSliderValue is in the range [0..100]
+
+ qreal linearVolume = QAudio::convertVolume(volumeSliderValue / qreal(100.0),
+ QAudio::CubicVolumeScale,
+ QAudio::LinearVolumeScale);
+
+ player.setVolume(qRound(linearVolume * 100));
+}
+//! [Volume conversion]