QAudioDecoder Class
QAudioDecoder クラスは、オーディオのデコード機能を実装しています。詳細...
| ヘッダー: | #include <QAudioDecoder> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| 継承元: | QObject |
| ステータス: | テクノロジープレビュー |
このクラスはテクノロジープレビュー段階にあり、変更される可能性があります。
パブリック型
| enum | Error { NoError, ResourceError, FormatError, AccessDeniedError, NotSupportedError } |
プロパティ
- bufferAvailable : bool
- error : QString
- isDecoding : bool
- source : QUrl
パブリック関数
| QAudioDecoder(QObject *parent = nullptr) | |
| virtual | ~QAudioDecoder() override |
| QAudioFormat | audioFormat() const |
| bool | bufferAvailable() const |
| qint64 | duration() const |
| QAudioDecoder::Error | error() const |
| QString | errorString() const |
| bool | isDecoding() const |
| bool | isSupported() const |
| qint64 | position() const |
| QAudioBuffer | read() const |
| void | setAudioFormat(const QAudioFormat &format) |
| void | setSource(const QUrl &fileName) |
| void | setSourceDevice(QIODevice *device) |
| QUrl | source() const |
| QIODevice * | sourceDevice() const |
パブリックスロット
シグナル
| void | bufferAvailableChanged(bool available) |
| void | bufferReady() |
| void | durationChanged(qint64 duration) |
| void | error(QAudioDecoder::Error error) |
| void | finished() |
| void | formatChanged(const QAudioFormat &format) |
| void | isDecodingChanged(bool) |
| void | positionChanged(qint64 position) |
| void | sourceChanged() |
詳細な説明
QAudioDecoderクラスは、オーディオメディアファイルをデコードするための高レベルクラスです。QMediaPlayer クラスと似ていますが、オーディオがオーディオハードウェアに直接ルーティングされるのではなく、このAPIを通じて返される点が異なります。
QAudioBufferも参照してください 。
メンバ型のドキュメント
enum QAudioDecoder::Error
メディアプレーヤーのエラー状態を定義します。
| 定数 | 値 | 説明 |
|---|---|---|
QAudioDecoder::NoError | 0 | エラーは発生していません。 |
QAudioDecoder::ResourceError | 1 | メディアリソースを解決できませんでした。 |
QAudioDecoder::FormatError | 2 | メディアリソースの形式がサポートされていません。 |
QAudioDecoder::AccessDeniedError | 3 | メディアリソースを再生するための適切な権限がありません。 |
QAudioDecoder::NotSupportedError | 4 | QAudioDecoder このプラットフォームではサポートされていません |
プロパティのドキュメント
[read-only] bufferAvailable : bool
このプロパティは、デコード済みのオーディオバッファが利用可能かどうかを示す
アクセス関数:
| bool | bufferAvailable() const |
通知シグナル:
| void | bufferAvailableChanged(bool available) |
[read-only] error : QString
現在のエラーについて、人間が理解しやすい説明を返します。エラーがない場合は、空の文字列を返します。
アクセス関数:
| QString | errorString() const |
[read-only] isDecoding : bool
true デコーダが現在実行中で、オーディオデータのデコードを行っている場合。
アクセス機能:
| bool | isDecoding() const |
通知信号:
| void | isDecodingChanged(bool) |
source : QUrl
このプロパティには、デコーダオブジェクトによってデコードされているアクティブなファイル名が格納されます。
アクセス関数:
通知シグナル:
| void | sourceChanged() |
メンバ関数のドキュメント
[explicit] QAudioDecoder::QAudioDecoder(QObject *parent = nullptr)
parent を使用して、QAudioDecoder インスタンスを作成します。
[override virtual noexcept] QAudioDecoder::~QAudioDecoder()
オーディオデコーダオブジェクトを破棄します。
QAudioFormat QAudioDecoder::audioFormat() const
デコーダーに設定されているオーディオ形式を返します。
注: オーディオ形式が無効な形式に設定されていた場合、これは デコードされたサンプルの形式とは異なる場合があります。
関連項目: setAudioFormat() およびformatChanged()。
bool QAudioDecoder::bufferAvailable() const
読み取り可能なバッファが存在する場合に true を返し、存在しない場合は false を返します。利用可能なバッファがない状態でread() 関数を呼び出すと、無効なバッファが返されます。
注: プロパティ bufferAvailableのゲッター 関数です。
[signal] void QAudioDecoder::bufferAvailableChanged(bool available)
新しいバッファが利用可能かどうか(available がtrueの場合)を通知します。
available がfalseの場合、利用可能なバッファはありません。
注: プロパティ `bufferAvailable` に対する通知 シグナルです。
bufferAvailable() およびbufferReady()も参照してください 。
[signal] void QAudioDecoder::bufferReady()
新しいデコード済みオーディオバッファが読み取り可能になったことを示します。
read() およびbufferAvailable()も参照してください 。
qint64 QAudioDecoder::duration() const
オーディオストリームの合計再生時間(ミリ秒単位)を返します。情報が利用できない場合は-1を返します。
[signal] void QAudioDecoder::durationChanged(qint64 duration)
復号化されたデータの推定duration が変化したことを示すシグナルです。
positionChanged()も参照してください 。
QAudioDecoder::Error QAudioDecoder::error() const
QAudioDecoder の現在のエラー状態を返します。
[signal] void QAudioDecoder::error(QAudioDecoder::Error error)
error 状態が発生したことを示します。
注:この シグナルは オーバーロードされています。このシグナルに接続するには:
// Connect using qOverload:
connect(audioDecoder, qOverload(&QAudioDecoder::error),
receiver, &ReceiverClass::slot);
// Or using a lambda:
connect(audioDecoder, qOverload(&QAudioDecoder::error),
this, [](QAudioDecoder::Error error) { /* handle error */ }); 「errorString()」も参照してください 。
[signal] void QAudioDecoder::finished()
デコードが正常に完了したことを示します。デコードに失敗した場合は、代わりにエラー信号が出力されます。
start()、stop()、およびerror()も参照してください 。
[signal] void QAudioDecoder::formatChanged(const QAudioFormat &format)
デコーダの現在のオーディオ形式がformat に変更されたことを示します。
audioFormat() およびsetAudioFormat()も参照してください 。
bool QAudioDecoder::isSupported() const
このプラットフォームでオーディオのデコードがサポートされている場合、true を返します。
qint64 QAudioDecoder::position() const
デコーダから最後に読み込まれたバッファの位置(ミリ秒単位)を返します。バッファが読み込まれていない場合は -1 を返します。
[signal] void QAudioDecoder::positionChanged(qint64 position)
デコーダの現在のposition が変更されたことを示します。
durationChanged()も参照してください 。
QAudioBuffer QAudioDecoder::read() const
デコーダからバッファが利用可能な場合、それを読み込みます。現在デコード済みのバッファがない場合や、処理が失敗した場合は、無効なバッファを返します。いずれの場合も、この関数はブロックしません。
read() を呼び出す前に、bufferReady() シグナルに応答するか、bufferAvailable() 関数をチェックして、有用なデータが取得できることを確認する必要があります。
void QAudioDecoder::setAudioFormat(const QAudioFormat &format)
デコードされたサンプルの希望するオーディオ形式をformat に設定します。
このプロパティは、デコーダが停止している間のみ設定可能です。それ以外のタイミングでこのプロパティを設定しても無視されます。
デコーダがこのフォーマットをサポートしていない場合、error() はFormatError に設定されます。
フォーマットを指定しない場合は、デコードされたオーディオ自体のフォーマットが使用されます。それ以外の場合は、何らかのフォーマット変換が適用されます。
デコード後のフォーマットを元のオーディオファイルのフォーマットにリセットしたい場合は、無効な `format` を指定することができます。
警告: 希望するオーディオ形式の設定は 、Android バックエンドではまだサポートされていません。デフォルトの FFMPEG バックエンドでは正常に動作します。
audioFormat()も参照してください 。
void QAudioDecoder::setSource(const QUrl &fileName)
現在のオーディオファイル名を「fileName 」に設定します。
このプロパティが設定されると、現在進行中のデコードは停止され、オーディオバッファはすべて破棄されます。
指定できるのは、ソースファイル名かソースの `QIODevice` のいずれか一方のみです。一方を設定すると、もう一方は設定解除されます。
注: プロパティsource のセッター 関数。
source()も参照してください 。
void QAudioDecoder::setSourceDevice(QIODevice *device)
現在のオーディオQIODevice をdevice に設定します。
このプロパティを設定すると、進行中のデコードはすべて停止され、オーディオバッファは破棄されます。
指定できるのは、ソースのファイル名かソースのQIODevice のいずれか一方のみです。一方を設定すると、もう一方は解除されます。
sourceDevice()も参照してください 。
QUrl QAudioDecoder::source() const
デコード対象の現在のファイル名を返します。setSourceDevice が呼び出された場合、これは空になります。
注: プロパティ sourceのゲッター 関数です。
setSource()も参照してください 。
[signal] void QAudioDecoder::sourceChanged()
デコーダの電流源が変更されたことを示すシグナルです。
注: プロパティ `source`の通知 信号です。
source() およびsourceDevice()も参照してください 。
QIODevice *QAudioDecoder::sourceDevice() const
設定されている場合、現在のソース `QIODevice` を返します。setSource()` が呼び出された場合、これは `nullptr` になります。
setSourceDevice()も参照してください 。
[slot] void QAudioDecoder::start()
オーディオリソースのデコードを開始します。
データのデコードが進み、十分なデータがデコードされると、bufferReady() シグナルが発信されます。その後、read() を呼び出すと、ブロックすることなくオーディオバッファが返されます。
バッファの準備が整う前にread() を呼び出すと、無効なバッファが返されますが、この場合もブロックは発生しません。
read()も参照してください 。
[slot] void QAudioDecoder::stop()
オーディオのデコードを停止します。start() を再度呼び出すと、デコードが最初から再開されます。
© 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.