QAudioDecoder 類

The QAudioDecoder class implements decoding audio. 更多...

頭: #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 ()
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 ()

詳細描述

The QAudioDecoder class is a high level class for decoding audio media files. It is similar to the QMediaPlayer class except that audio is provided back through this API rather than routed directly to audio hardware.

另請參閱 QAudioBuffer .

成員類型文檔編製

enum QAudioDecoder:: Error

定義媒體播放器錯誤條件。

常量 描述
QAudioDecoder::NoError 0 沒有齣現錯誤。
QAudioDecoder::ResourceError 1 無法解析媒體資源。
QAudioDecoder::FormatError 2 媒體資源格式不支持。
QAudioDecoder::AccessDeniedError 3 沒有適當權限來播放媒體資源。
QAudioDecoder::NotSupportedError 4 QAudioDecoder is not supported on this platform

特性文檔編製

[read-only] bufferAvailable : const bool

This property holds whether there is a decoded audio buffer available

訪問函數:

bool bufferAvailable () const

通知程序信號:

void bufferAvailableChanged (bool available )

[read-only] error : const QString

Returns a human readable description of the current error, or an empty string is there is no error.

訪問函數:

QString errorString () const

[read-only] isDecoding : const bool

true if the decoder is currently running and decoding audio data.

訪問函數:

bool isDecoding () const

通知程序信號:

void isDecodingChanged (bool)

source : QUrl

This property holds the active filename being decoded by the decoder object.

訪問函數:

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

通知程序信號:

void sourceChanged ()

成員函數文檔編製

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

Construct an QAudioDecoder instance with parent .

[虛擬] QAudioDecoder:: ~QAudioDecoder ()

銷毀音頻解碼器對象。

QAudioFormat QAudioDecoder:: audioFormat () const

Returns the audio format the decoder is set to.

注意: This may be different than the format of the decoded samples, if the audio format was set to an invalid one.

另請參閱 setAudioFormat () 和 formatChanged ().

bool QAudioDecoder:: bufferAvailable () const

Returns true if a buffer is available to be read, and false otherwise. If there is no buffer available, calling the read () function will return an invalid buffer.

注意: getter 函數對於特性 bufferAvailable。

[signal] void QAudioDecoder:: bufferAvailableChanged ( bool available )

Signals the availability (if available is true) of a new buffer.

available is false, there are no buffers available.

注意: 通知程序信號對於特性 bufferAvailable .

另請參閱 bufferAvailable () 和 bufferReady ().

[signal] void QAudioDecoder:: bufferReady ()

Signals that a new decoded audio buffer is available to be read.

另請參閱 read () 和 bufferAvailable ().

qint64 QAudioDecoder:: duration () const

Returns total duration (in milliseconds) of the audio stream or -1 if not available.

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

Signals that the estimated duration of the decoded data has changed.

另請參閱 positionChanged ().

QAudioDecoder::Error QAudioDecoder:: error () const

Returns the current error state of the 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 ()

Signals that the decoding has finished successfully. If decoding fails, error signal is emitted instead.

另請參閱 start (), stop (),和 error ().

[signal] void QAudioDecoder:: formatChanged (const QAudioFormat & format )

Signals that the current audio format of the decoder has changed to format .

另請參閱 audioFormat () 和 setAudioFormat ().

bool QAudioDecoder:: isSupported () const

Returns true is audio decoding is supported on this platform.

qint64 QAudioDecoder:: position () const

Returns position (in milliseconds) of the last buffer read from the decoder or -1 if no buffers have been read.

[signal] void QAudioDecoder:: positionChanged ( qint64 position )

Signals that the current position of the decoder has changed.

另請參閱 durationChanged ().

QAudioBuffer QAudioDecoder:: read () const

Read a buffer from the decoder, if one is available. Returns an invalid buffer if there are no decoded buffers currently available, or on failure. In both cases this function will not block.

You should either respond to the bufferReady () signal or check the bufferAvailable () function before calling read() to make sure you get useful data.

void QAudioDecoder:: setAudioFormat (const QAudioFormat & format )

Set the desired audio format for decoded samples to format .

This property can only be set while the decoder is stopped. Setting this property at other times will be ignored.

If the decoder does not support this format, error () 會被設為 FormatError .

If you do not specify a format, the format of the decoded audio itself will be used. Otherwise, some format conversion will be applied.

If you wish to reset the decoded format to that of the original audio file, you can specify an invalid format .

警告: Setting a desired audio format is not yet supported on the Android backend. It does work with the default FFMPEG backend.

另請參閱 audioFormat ().

void QAudioDecoder:: setSource (const QUrl & fileName )

Sets the current audio file name to fileName .

When this property is set any current decoding is stopped, and any audio buffers are discarded.

You can only specify either a source filename or a source QIODevice . Setting one will unset the other.

注意: setter 函數對於特性 source .

另請參閱 source ().

void QAudioDecoder:: setSourceDevice ( QIODevice * device )

設置當前音頻 QIODevice to device .

When this property is set any current decoding is stopped, and any audio buffers are discarded.

You can only specify either a source filename or a source QIODevice . Setting one will unset the other.

另請參閱 sourceDevice ().

QUrl QAudioDecoder:: source () const

Returns the current file name to decode. If setSourceDevice was called, this will be empty.

注意: getter 函數對於特性 source。

另請參閱 setSource ().

[signal] void QAudioDecoder:: sourceChanged ()

Signals that the current source of the decoder has changed.

注意: 通知程序信號對於特性 source .

另請參閱 source () 和 sourceDevice ().

QIODevice *QAudioDecoder:: sourceDevice () const

返迴當前源 QIODevice , if one was set. If setSource () was called, this will be a nullptr.

另請參閱 setSourceDevice ().

[slot] void QAudioDecoder:: start ()

開始解碼音頻資源。

As data gets decoded, the bufferReady () signal will be emitted when enough data has been decoded. Calling read () will then return an audio buffer without blocking.

若調用 read () before a buffer is ready, an invalid buffer will be returned, again without blocking.

另請參閱 read ().

[slot] void QAudioDecoder:: stop ()

停止解碼音頻。調用 start () again will resume decoding from the beginning.