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クラスは、オーディオ・メディア・ファイルをデコードするための高レベルのクラスです。オーディオ・ハードウェアに直接ルーティングされるのではなく、このAPIを通してオーディオが提供されることを除けば、QMediaPlayer クラスに似ています。

QAudioBufferも参照の こと。

メンバ型ドキュメント

enum QAudioDecoder::Error

メディアプレーヤーのエラー状態を定義します。

定数説明
QAudioDecoder::NoError0エラーは発生していません。
QAudioDecoder::ResourceError1メディア・リソースを解決できませんでした。
QAudioDecoder::FormatError2メディア・リソースのフォーマットがサポートされていません。
QAudioDecoder::AccessDeniedError3メディア・リソースを再生するための適切なパーミッションがありません。
QAudioDecoder::NotSupportedError4QAudioDecoder このプラットフォームではサポートされていません。

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

[read-only] bufferAvailable : const bool

このプロパティは、利用可能なデコードオーディオバッファがあるかどうかを保持する。

アクセス関数

bool bufferAvailable() const

ノーティファイア信号:

void bufferAvailableChanged(bool available)

[read-only] error : const QString

現在のエラーについて人間が読める説明を返すか、エラーがない場合は空文字列を返す。

アクセス関数:

QString errorString() const

[read-only] isDecoding : const 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)

QAudioDecoder のインスタンスをparent で構築する。

[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

オーディオストリームの総時間(ミリ秒)を返します。

[signal] void QAudioDecoder::durationChanged(qint64 duration)

デコードされたデータの推定duration が変更されたことを示す。

positionChanged()も参照のこと

QAudioDecoder::Error QAudioDecoder::error() const

QAudioDecoder の現在のエラー状態を返す。

[signal] void QAudioDecoder::error(QAudioDecoder::Error error)

error 条件が発生したことを知らせる。

注意:シグナルerrorはこのクラスでオーバーロードされています。関数ポインタ構文を使用してこのシグナルに接続するために、Qtはこの例に示すように関数ポインタを取得する便利なヘルパーを提供します:

connect(audioDecoder, QOverload<QAudioDecoder::Error>::of(&QAudioDecoder::error),
    [=](QAudioDecoder::Error 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)

現在のオーディオQIODevicedevice に設定する。

このプロパティが設定されると、現在のデコードはすべて停止され、オーディオバッファはすべて破棄される。

指定できるのは、ソースファイル名またはソースQIODevice のどちらか一方のみです。一方を設定すると、もう一方は設定されなくなります。

sourceDevice()も参照してください

QUrl QAudioDecoder::source() const

デコードする現在のファイル名を返す。setSourceDevice が呼び出された場合、これは空になる。

メモ: プロパティ・ソースのゲッター関数。

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() を呼び出すと、デコードを最初から再開する。

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