QtAudio Namespace

QtAudio 名前空間は、オーディオクラスで使用される列挙型を含んでいます。詳細...

Header: #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)

音声volume from 音量スケールto 別のスケールに変換し、結果を返します。

コンテキストに応じて、オーディオの音量を表すために異なるスケールが使用されます。その理由は、スピーカーの音量は、その電圧をリニアスケールで変調することによって制御されるからです。一方、人間の耳はラウドネスを対数で認識します。従って、ボリューム・コントロールに対数スケールを使用することは、ほとんどの用途において適切です。デシベルスケールはもともと対数スケールであり、サウンドレベルを定義するために一般的に使用され、それは通常、プロフェッショナルオーディオアプリケーションの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));
}

VolumeScale,QAudioSink::setVolume(),QAudioSource::setVolume(),QSoundEffect::setVolume()も参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。