このページでは

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 }

プロパティ

パブリック関数

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 start()
void stop()

シグナル

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::NoError0エラーは発生していません。
QAudioDecoder::ResourceError1メディアリソースを解決できませんでした。
QAudioDecoder::FormatError2メディアリソースの形式がサポートされていません。
QAudioDecoder::AccessDeniedError3メディアリソースを再生するための適切な権限がありません。
QAudioDecoder::NotSupportedError4QAudioDecoder このプラットフォームではサポートされていません

プロパティのドキュメント

[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

このプロパティには、デコーダオブジェクトによってデコードされているアクティブなファイル名が格納されます。

アクセス関数:

QUrl source() const
void setSource(const QUrl &fileName)

通知シグナル:

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.