QAudioDecoder Class

QAudioDecoderクラスは、オーディオのデコードを実装しています。詳細...

Header: #include <QAudioDecoder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Inherits: QObject
Status: Preliminary

このクラスは開発中であり、変更される可能性があります。

パブリックタイプ

enum Error { NoError, ResourceError, FormatError, AccessDeniedError, NotSupportedError }

プロパティ

パブリック関数

QAudioDecoder(QObject *parent = nullptr)
virtual ~QAudioDecoder()
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 このプラットフォームではサポートされていません。

プロパティ Documentation

[read-only] bufferAvailable : const bool

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

アクセス関数

bool bufferAvailable() const

Notifier シグナル:

void bufferAvailableChanged(bool available)

[read-only] error : const QString

現在のエラーに関する可読性のある説明、またはエラーがない場合は空文字列を返します。

アクセス関数

QString errorString() const

[read-only] isDecoding : const bool

true デコーダが現在実行中で、オーディオデータをデコードしている場合。

アクセス関数:

bool isDecoding() const

Notifier シグナル:

void isDecodingChanged(bool)

source : QUrl

このプロパティは、デコーダオブジェクトがデコードしているアクティブなファイル名を保持する。

アクセス関数

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

Notifierシグナル:このプロパティは、デコーダーオブジェクトによってデコードされているアクティブなファイル名を保持する:

void sourceChanged()

メンバー関数ドキュメント

[explicit] QAudioDecoder::QAudioDecoder(QObject *parent = nullptr)

QAudioDecoder インスタンスをparent で構築します。

[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 が真の場合)。

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

デコーダからバッファを読み込む。現在利用可能なデコード済みバッファがない場合、または失敗した場合は無効なバッファを返す。どちらの場合も、この関数はブロックしない。

bufferReady() シグナルに応答するか、bufferAvailable() 関数をチェックしてから read() をコールして、有用なデータが得られることを確認する必要がある。

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

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