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オーディオデータがオーディオデバイスに十分な速度で供給されていない。
QtAudio::FatalError4回復不可能なエラーが発生したため、オーディオデバイスは現在使用できません。

enum QtAudio::State

定数説明
QtAudio::ActiveState0オーディオ・データは処理中であり、この状態はstart()がコールされた後、オーディオ・データが処理可能な間に設定される。
QtAudio::SuspendedState1オーディオストリームはサスペンド状態である。suspend()が呼び出された後、または別のストリームがオーディオデバイスの制御権を取得した場合に設定される。この場合、resume()を呼び出すと、オーディオデバイスの制御がこのストリームに戻される。これは通常、ユーザの要求があった場合にのみ実行されるべきである。
QtAudio::StoppedState2オーディオデバイスがクローズされ、オーディオデータを処理していない。
QtAudio::IdleState3渡されたQIODevice にはデータがなく、オーディオシステムのバッファは空である。この状態は、 start() が呼ばれた後、処理可能なオーディオデータがないときに設定される。

enum QtAudio::VolumeScale

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

定数説明
QtAudio::LinearVolumeScale0リニアスケール。 0.0 (0%)は無音、1.0 (100%)はフルボリューム。オーディオ・ボリュームを持つすべてのQt Multimedia クラスは、リニア・スケールを使用します。
QtAudio::CubicVolumeScale1キュービックスケール。 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)

audiovolume from a volume scaleto another を変換し、結果を返します。

コンテキストに応じて、オーディオの音量を表すために異なるスケールが使用されます。音声ボリュームを持つすべてのQt Multimedia クラスは、線形スケールを使用します。その理由は、スピーカーのラウドネスは、線形スケールで電圧を変調することによって制御されるからです。一方、人間の耳はラウドネスを対数的に知覚します。従って、ボリューム・コントロールに対数スケールを使用することは、ほとんどの用途において適切です。デシベルスケールはもともと対数スケールであり、サウンドレベルを定義するために一般的に使用され、それは通常、プロフェッショナルオーディオアプリケーションのUIボリュームコントロールに使用されます。キュービックスケールは、対数スケールの計算コストの安い近似値で、より低い音量レベルをよりコントロールできます。

次の例では、スライダコントロールのボリューム値を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));
}

VolumeScaleQAudioSink::setVolume ()、QAudioSource::setVolume ()、QSoundEffect::setVolume)も参照

© 2025 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.