このページでは

QtAudio Namespace

QtAudio ネームスペースには、オーディオクラスで使用される列挙型が含まれています。詳細...

ヘッダー: #include <QtAudio>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia

型

enum Error { NoError, OpenError, IOError, UnderrunError, FatalError }
enum State { ActiveState, SuspendedState, StoppedState, IdleState }
enum VolumeScale { LinearVolumeScale, CubicVolumeScale, LogarithmicVolumeScale, DecibelVolumeScale }

関数

float convertVolume(float volume, QtAudio::VolumeScale from, QtAudio::VolumeScale to)

詳細な説明

型のドキュメント

enum QtAudio::Error

定数値説明
QtAudio::NoError0エラーは発生していません
QtAudio::OpenError1オーディオデバイスのオープン中にエラーが発生しました
QtAudio::IOError2オーディオデバイスの読み書き中にエラーが発生しました。これは、例えば外部オーディオインターフェースが切断された場合などに発生することがあります。
QtAudio::UnderrunError3この値は Qt-6.11 で非推奨となり、Qt からは出力されなくなりました。代わりにQtAudio::State::IdleState を確認してください。オーディオデータがオーディオデバイスに十分な速度で供給されていません。
QtAudio::FatalError4回復不可能なエラーが発生しました。現時点ではオーディオデバイスを使用できません。

enum QtAudio::State

定数値説明
QtAudio::ActiveState0オーディオデータの処理が行われています。この状態は、start() が呼び出された後、処理可能なオーディオデータが存在する間、設定されます。
QtAudio::SuspendedState1オーディオストリームは一時停止状態にあります。suspend() が呼び出された後、または別のストリームがオーディオデバイスの制御を引き継いだ際にこの状態になります。後者の場合、resume() を呼び出すと、オーディオデバイスの制御がこのストリームに戻ります。これは通常、ユーザーの要求があった場合にのみ行うべきです。
QtAudio::StoppedState2オーディオデバイスが閉じられており、オーディオデータの処理を行っていません。
QtAudio::IdleState3この状態は、バッファリングの状態によりオーディオシステムが一時的にアイドル状態にあることを示します。QAudioSink の場合、IdleStateは、QIODevice から読み取るのに十分なデータが利用できないことを意味します。QAudioSource の場合、QIODevice にデータを供給するリングバッファが満杯になるとIdleStateに入ります。その場合、アプリケーションがQIODevice から読み取りを行い、バッファの空き領域を確保するまで、オーディオインターフェースから到着する新しいオーディオデータはすべて破棄されます。

enum QtAudio::VolumeScale

この列挙型は、さまざまなオーディオ音量スケールを定義します。

定数値説明
QtAudio::LinearVolumeScale0線形スケール。0.0 (0%) は無音、1.0 (100%) は最大音量です。オーディオ音量を持つすべてのQt Multimedia クラスは、線形スケールを使用します。
QtAudio::CubicVolumeScale13 乗スケール。0.0 (0%) は無音、1.0 (100%) は最大音量です。
QtAudio::LogarithmicVolumeScale2対数スケール。0.0 (0%) は無音、1.0 (100%) は最大音量です。UI の音量コントロールは通常、対数スケールを使用すべきです。
QtAudio::DecibelVolumeScale3デシベル (dB、振幅) の対数スケール。-200 は無音、0 は最大音量です。

QtAudio::convertVolume()も参照してください 。

関数のドキュメント

float QtAudio::convertVolume(float volume, QtAudio::VolumeScale from, QtAudio::VolumeScale to)

オーディオvolume from をある音量スケールto 別の音量スケールに変換し、その結果を返します。

文脈に応じて、オーディオの音量を表現するために異なるスケールが使用されます。オーディオの音量を持つすべてのQt Multimedia クラスは線形スケールを使用しています。その理由は、スピーカーの音量は、線形スケールに基づいて電圧を変調することで制御されるためです。 一方、人間の耳は音量を対数的に知覚します。したがって、ほとんどのアプリケーションでは、音量コントロールに対数スケールを使用するのが適切です。 デシベル(dB)スケールは本質的に対数スケールであり、音圧レベルの定義に一般的に使用されます。プロ用オーディオアプリケーションのUI音量コントロールでは、通常これを使用します。3乗スケールは、計算負荷の低い対数スケールの近似値であり、低音量域での制御性を高めます。

以下の例は、スライダーコントロールから取得した音量値を、QMediaPlayer に渡す前に変換する方法を示しています。その結果、音量スライダーを20から30に上げた場合と、50から60に上げた場合で、知覚される音量の増加量が同じになります:

void applyVolume(int volumeSliderValue)
{
    // volumeSliderValue is in the range [0..100]

    qreal linearVolume = QtAudio::convertVolume(volumeSliderValue / qreal(100.0),
                                                QtAudio::LogarithmicVolumeScale,
                                                QtAudio::LinearVolumeScale);

    player.setVolume(qRound(linearVolume * 100));
}

関連項目: VolumeScale 、QAudioSink::setVolume()、QAudioSource::setVolume()、およびQSoundEffect::setVolume()。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.