diff options
author | Yoann Lopes <yoann.lopes@qt.io> | 2016-05-13 17:13:03 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@qt.io> | 2016-06-03 21:11:58 +0000 |
commit | fe46759fc0a39418a3b5f32cf78a162c35a7aef7 (patch) | |
tree | b043309dc6ee6a3de2b7477113125adda6ae1911 /src/multimedia/doc/snippets/multimedia-snippets | |
parent | 78a73643a31a761ada8cfafa80ddf2fb916c1d6a (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.cpp | 16 |
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] |