QMediaPlayer 類

QMediaPlayer 類允許播放媒體源。 更多...

頭: #include <QMediaPlayer>
qmake: QT += multimedia
繼承: QMediaObject

公共類型

enum Error { NoError, ResourceError, FormatError, NetworkError, AccessDeniedError, ServiceMissingError }
enum Flag { LowLatency, StreamPlayback, VideoSurface }
flags Flags
enum MediaStatus { UnknownMediaStatus, NoMedia, LoadingMedia, LoadedMedia, StalledMedia, …, InvalidMedia }
enum State { StoppedState, PlayingState, PausedState }

特性

公共函數

QMediaPlayer (QObject * parent = nullptr, QMediaPlayer::Flags flags = Flags())
virtual ~QMediaPlayer ()
QAudio::Role audioRole () const
int bufferStatus () const
QMediaContent currentMedia () const
QString customAudioRole () const
qint64 duration () const
QMediaPlayer::Error error () const
QString errorString () const
bool isAudioAvailable () const
bool isMuted () const
bool isSeekable () const
bool isVideoAvailable () const
QMediaContent media () const
QMediaPlayer::MediaStatus mediaStatus () const
const QIODevice * mediaStream () const
qreal playbackRate () const
QMediaPlaylist * playlist () const
qint64 position () const
void setAudioRole (QAudio::Role audioRole )
void setCustomAudioRole (const QString & audioRole )
void setVideoOutput (QVideoWidget * output )
void setVideoOutput (QGraphicsVideoItem * output )
void setVideoOutput (QAbstractVideoSurface * surface )
void setVideoOutput (const QVector<QAbstractVideoSurface *> & surfaces )
QMediaPlayer::State state () const
QList<QAudio::Role> supportedAudioRoles () const
QStringList supportedCustomAudioRoles () const
int volume () const

重實現公共函數

virtual QMultimedia::AvailabilityStatus availability () const override

公共槽

void pause ()
void play ()
void setMedia (const QMediaContent & media , QIODevice * stream = nullptr)
void setMuted (bool muted )
void setPlaybackRate (qreal rate )
void setPlaylist (QMediaPlaylist * playlist )
void setPosition (qint64 position )
void setVolume (int volume )
void stop ()

信號

void audioAvailableChanged (bool available )
void audioRoleChanged (QAudio::Role role )
void bufferStatusChanged (int percentFilled )
void currentMediaChanged (const QMediaContent & media )
void customAudioRoleChanged (const QString & role )
void durationChanged (qint64 duration )
void error (QMediaPlayer::Error error )
void mediaChanged (const QMediaContent & media )
void mediaStatusChanged (QMediaPlayer::MediaStatus status )
void mutedChanged (bool muted )
void playbackRateChanged (qreal rate )
void positionChanged (qint64 position )
void seekableChanged (bool seekable )
void stateChanged (QMediaPlayer::State state )
void videoAvailableChanged (bool videoAvailable )
void volumeChanged (int volume )

靜態公共成員

QMultimedia::SupportEstimate hasSupport (const QString & mimeType , const QStringList & codecs = QStringList(), QMediaPlayer::Flags flags = Flags())

詳細描述

QMediaPlayer 類是高級媒體播放類。可用於迴放歌麯、電影及互聯網廣播內容。將要迴放的內容指定為 QMediaContent 對象,可以認為是附加瞭額外信息的主 URL 或典型 URL。當提供采用 QMediaContent 迴放也許可以開始。

player = new QMediaPlayer;
connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged(qint64)));
player->setMedia(QUrl::fromLocalFile("/Users/me/Music/coolsong.mp3"));
player->setVolume(50);
player->play();
					

QVideoWidget 可以用於 QMediaPlayer 為渲染視頻而 QMediaPlaylist 為訪問播放列錶功能。

playlist = new QMediaPlaylist;
playlist->addMedia(QUrl("http://example.com/movie1.mp4"));
playlist->addMedia(QUrl("http://example.com/movie2.mp4"));
playlist->addMedia(QUrl("http://example.com/movie3.mp4"));
playlist->setCurrentIndex(1);
player = new QMediaPlayer;
player->setPlaylist(playlist);
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play();
					

由於 QMediaPlayer 是 QMediaObject ,可以使用幾個 QMediaObject 函數對於像這樣的事情:

另請參閱 QMediaObject , QMediaService , QVideoWidget ,和 QMediaPlaylist .

成員類型文檔編製

enum QMediaPlayer:: Error

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

常量 描述
QMediaPlayer::NoError 0 沒有齣現錯誤。
QMediaPlayer::ResourceError 1 無法解析媒體資源。
QMediaPlayer::FormatError 2 不 (完全) 支持媒體資源格式。仍可能可以迴放,但沒有音頻或視頻組件。
QMediaPlayer::NetworkError 3 發生網絡錯誤。
QMediaPlayer::AccessDeniedError 4 沒有適當權限來播放媒體資源。
QMediaPlayer::ServiceMissingError 5 找不到有效迴放服務,無法繼續進行播放。開頭

enum QMediaPlayer:: Flag
flags QMediaPlayer:: Flags

常量 描述
QMediaPlayer::LowLatency 0x01 播放器期望用於簡單音頻格式,但迴放應該始於沒有顯著延遲。這種迴放服務可以用於蜂鳴聲、鈴聲、等。
QMediaPlayer::StreamPlayback 0x02 播放器期望播放 QIODevice 基流。若傳遞給 QMediaPlayer 構造函數,將選擇支持流迴放的服務。
QMediaPlayer::VideoSurface 0x04 播放器期望能夠渲染到 QAbstractVideoSurface output .

Flags 類型是 typedef 對於 QFlags <Flag>。它存儲 Flag 值的 OR (或) 組閤。

enum QMediaPlayer:: MediaStatus

定義媒體播放器當前媒體的狀態。

常量 描述
QMediaPlayer::UnknownMediaStatus 0 無法確定媒體狀態。
QMediaPlayer::NoMedia 1 當前媒體不存在。播放器處於 StoppedState .
QMediaPlayer::LoadingMedia 2 當前正加載媒體。播放器可能處於任何狀態。
QMediaPlayer::LoadedMedia 3 當前媒體已加載。播放器處於 StoppedState .
QMediaPlayer::StalledMedia 4 當前媒體的迴放已失速,由於緩衝不足或某些其它臨時中斷。播放器在 PlayingState or PausedState .
QMediaPlayer::BufferingMedia 5 播放器在緩衝數據,但已緩衝足夠數據為未來能立即繼續迴放。播放器在 PlayingState or PausedState .
QMediaPlayer::BufferedMedia 6 播放器已完全緩衝當前媒體。播放器處於 PlayingState or PausedState .
QMediaPlayer::EndOfMedia 7 迴放已到達當前媒體結尾。播放器處於 StoppedState .
QMediaPlayer::InvalidMedia 8 當前媒體無法播放。播放器處於 StoppedState .

enum QMediaPlayer:: State

定義媒體播放器的當前狀態。

常量 描述
QMediaPlayer::StoppedState 0 媒體播放器未播放內容,迴放將從當前軌道的起始開始。
QMediaPlayer::PlayingState 1 媒體播放器目前正在播放內容。
QMediaPlayer::PausedState 2 媒體播放器已暫停迴放,當前軌道的迴放將從播放器暫停位置處再繼續。

特性文檔編製

audioAvailable : const bool

此特性保持當前媒體的音頻可用性狀態。

由於存活時間對於 QMediaPlayer 可以長於迴放的某個 QMediaContent ,此特性可能隨時間推移改變, audioAvailableChanged 信號可以用於監視其狀態。

訪問函數:

bool isAudioAvailable () const

通知程序信號:

void audioAvailableChanged (bool available )

audioRole : QAudio::Role

此特性保持由媒體播放器播放的音頻流角色。

可以把它設為正播放的指定音頻類型,允許係統做齣適當決定,當涉及到音量、路由、或後期處理時。

必須設置音頻角色,先於調用 setMedia ().

customAudioRole 被清零,當把此特性設為任何值除瞭 QAudio::CustomRole .

該特性在 Qt 5.6 引入。

訪問函數:

QAudio::Role audioRole () const
void setAudioRole (QAudio::Role audioRole )

通知程序信號:

void audioRoleChanged (QAudio::Role role )

另請參閱 supportedAudioRoles ().

bufferStatus : const int

此特性保持填充臨時緩衝的百分比,在迴放開始 (或再繼續) 前。從 0 (空) 到 100 (完整)。

當緩衝播放器對象時,此特性保持填充臨時緩衝的百分比。在迴放可以開始 (或再繼續) 前,填充緩衝需要達到 100%,此時 mediaStatus () 會返迴 BufferedMedia or BufferingMedia 。若是任何值小於 100 , mediaStatus () 會返迴 StalledMedia .

訪問函數:

int bufferStatus () const

通知程序信號:

void bufferStatusChanged (int percentFilled )

另請參閱 mediaStatus ().

currentMedia : const QMediaContent

此特性保持由播放器對象,正播放的當前活動媒體內容。該值可以不同於 QMediaPlayer::media 特性,若使用播放列錶。在此情況下,currentMedia 指示播放器正處理的當前媒體內容,當 QMediaPlayer::media 特性包含原始播放列錶。

訪問函數:

QMediaContent currentMedia () const

通知程序信號:

void currentMediaChanged (const QMediaContent & media )

另請參閱 QMediaContent and media ().

customAudioRole : QString

此特性保持由媒體播放器播放的音頻流角色。

可以設置它以指定正播放的音頻類型,當後端支持 Qt 未知的音頻角色時。指定角色允許係統做齣適當決定,當涉及音量、路由、或後處理時。

必須設置音頻角色,先於調用 setMedia ().

audioRole 被設為 QAudio::CustomRole 當此特性有設置。

該特性在 Qt 5.11 引入。

訪問函數:

QString customAudioRole () const
void setCustomAudioRole (const QString & audioRole )

通知程序信號:

void customAudioRoleChanged (const QString & role )

另請參閱 supportedCustomAudioRoles ().

duration : const qint64

此特性保持當前媒體的持續時間。

值是當前媒體的總迴放時間 (以毫秒為單位)。值可能跨存活時間改變對於 QMediaPlayer 對象且可能不可用 (當初始迴放開始時),連接到 durationChanged () 信號以接收狀態通知。

訪問函數:

qint64 duration () const

通知程序信號:

void durationChanged (qint64 duration )

error : const QString

此特性保持描述最後一個錯誤條件的字符串。

訪問函數:

QString errorString () const

另請參閱 error ().

media : QMediaContent

此特性保持播放器對象正在使用的活動媒體源。

播放器對象將使用 QMediaContent 為選擇要播放的內容。

默認情況下,此特性擁有 null QMediaContent .

將此特性設為 null QMediaContent 將導緻播放器丟棄與當前媒體源相關的所有信息,並停息與該媒體相關的所有 I/O 操作。

訪問函數:

QMediaContent media () const
void setMedia (const QMediaContent & media , QIODevice * stream = nullptr)

通知程序信號:

void mediaChanged (const QMediaContent & media )

另請參閱 QMediaContent and currentMedia ().

mediaStatus : const MediaStatus

此特性保持當前媒體流的狀態。

流狀態描述當前流的迴放進展。

默認情況下此特性為 QMediaPlayer::NoMedia

訪問函數:

QMediaPlayer::MediaStatus mediaStatus () const

通知程序信號:

void mediaStatusChanged (QMediaPlayer::MediaStatus status )

另請參閱 state .

muted : bool

此特性保持當前媒體的靜音狀態。

值將為 true 若迴放音量靜音;否則 false。

訪問函數:

bool isMuted () const
void setMuted (bool muted )

通知程序信號:

void mutedChanged (bool muted )

playbackRate : qreal

此特性保持當前媒體的迴放速率。

此值是應用於媒體標準播放速率的乘數。默認情況下,此值為 1.0,指示媒體以標準步速播放。值 > 1.0 將提高播放速率。可以設置 < 0 的值,並指示媒體應以標準步速的乘數倒帶。

並非所有迴放服務,都支持迴放速率的改變。它由音頻和視頻狀態和品質的框架定義,當快進 (或倒帶) 時。

訪問函數:

qreal playbackRate () const
void setPlaybackRate (qreal rate )

通知程序信號:

void playbackRateChanged (qreal rate )

playlist : QMediaPlaylist *

此特性保持播放器對象正使用的媒體播放列錶。

播放器對象將使用當前播放列錶項,為選擇要播放的內容。

默認情況下,此特性被設為 null。

若把媒體播放列錶用作源, QMediaPlayer::currentMedia is updated with a current playlist item. The current source should be selected with QMediaPlaylist::setCurrentIndex (int) instead of QMediaPlayer::setMedia (), otherwise the current playlist will be discarded.

訪問函數:

QMediaPlaylist * playlist () const
void setPlaylist (QMediaPlaylist * playlist )

另請參閱 QMediaContent .

position : qint64

此特性保持當前媒體的迴放位置。

值是當前迴放位置,以從媒體開始起的毫秒數錶達。將指示位置的周期性變化采用信號 positionChanged (),可以設置更新間隔采用 QMediaObject 的方法 setNotifyInterval ().

訪問函數:

qint64 position () const
void setPosition (qint64 position )

通知程序信號:

void positionChanged (qint64 position )

seekable : const bool

此特性保持當前媒體的可尋址狀態

若支持尋址,此特性為 true;否則為 false。此特性的狀態可能改變,當跨存活時間在 QMediaPlayer 對象,使用 seekableChanged 信號以監視改變。

訪問函數:

bool isSeekable () const

通知程序信號:

void seekableChanged (bool seekable )

state : const State

此特性保持媒體播放器的迴放狀態。

默認情況下此特性為 QMediaPlayer::Stopped

訪問函數:

QMediaPlayer::State state () const

通知程序信號:

void stateChanged (QMediaPlayer::State state )

另請參閱 mediaStatus (), play (), pause (),和 stop ().

videoAvailable : const bool

此特性保持用於當前媒體的視頻可用性狀態。

若可用, QVideoWidget 類可以用於查看視頻。由於存活時間對於 QMediaPlayer 可以長於迴放的某個 QMediaContent ,此特性可能隨時間推移改變, videoAvailableChanged 信號可以用於監視其狀態。

訪問函數:

bool isVideoAvailable () const

通知程序信號:

void videoAvailableChanged (bool videoAvailable )

另請參閱 QVideoWidget and QMediaContent .

volume : int

此特性保持當前迴放音量。

播放音量是按綫性比例縮放的,範圍從 0 (無聲) 到 100 (全音量)。將鉗製超齣此範圍的值。

默認情況下,音量為 100 .

通常,UI 音量控件應按非綫性比例縮放。例如,使用對數比例縮放將産生感知響度的綫性變化,這通常是用戶期望的音量控製。見 QAudio::convertVolume () 瞭解更多細節。

訪問函數:

int volume () const
void setVolume (int volume )

通知程序信號:

void volumeChanged (int volume )

成員函數文檔編製

QMediaPlayer:: QMediaPlayer ( QObject * parent = nullptr, QMediaPlayer::Flags flags = Flags())

構造 QMediaPlayer 實例父級到 parent 和采用 flags .

[signal] void QMediaPlayer:: audioAvailableChanged ( bool available )

發射信號,當音頻內容的可用性已變成 available .

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

[signal] void QMediaPlayer:: audioRoleChanged ( QAudio::Role role )

發射信號,當音頻 role 為媒體播放器已改變。

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

該函數在 Qt 5.6 引入。

[signal] void QMediaPlayer:: bufferStatusChanged ( int percentFilled )

發射信號,當以百分比方式錶示本地緩衝填充量通過 percentFilled .

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

[signal] void QMediaPlayer:: currentMediaChanged (const QMediaContent & media )

發射信號,當當前播放內容已變為 media .

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

另請參閱 currentMedia () 和 mediaChanged ().

[signal] void QMediaPlayer:: customAudioRoleChanged (const QString & role )

發射信號,當音頻 role 為媒體播放器已改變。

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

該函數在 Qt 5.11 引入。

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

發射信號,當內容持續時間已變成 duration ,錶達 (以毫秒為單位)。

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

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

發射信號,當 error 條件齣現。

注意: 信號 error 在此類中被重載。通過使用函數指針句法連接到此信號,Qt 提供用於獲得如此範例展示的函數指針的方便幫助程序:

connect(mediaPlayer, QOverload<QMediaPlayer::Error>::of(&QMediaPlayer::error),
    [=](QMediaPlayer::Error error){ /* ... */ });
					

另請參閱 errorString ().

[signal] void QMediaPlayer:: mediaChanged (const QMediaContent & media )

發射信號,當媒體源已變成 media .

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

另請參閱 media () 和 currentMediaChanged ().

[signal] void QMediaPlayer:: mediaStatusChanged ( QMediaPlayer::MediaStatus status )

發射信號,當 status 若當前媒體已改變。

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

另請參閱 mediaStatus ().

[signal] void QMediaPlayer:: mutedChanged ( bool muted )

發射信號,當靜音狀態已變成 muted .

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

[slot] void QMediaPlayer:: pause ()

暫停播放當前源。

[slot] void QMediaPlayer:: play ()

開始 (或再繼續) 播放當前源。

[signal] void QMediaPlayer:: playbackRateChanged ( qreal rate )

信號 playbackRate 已變成 rate .

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

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

發射信號,當內容位置已變成 position ,錶達 (以毫秒為單位)。

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

[signal] void QMediaPlayer:: seekableChanged ( bool seekable )

信號 seekable 播放器對象狀態已改變。

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

[slot] void QMediaPlayer:: setMedia (const QMediaContent & media , QIODevice * stream = nullptr)

設置當前 media 源。

stream is supplied; media data will be read from it instead of resolving the media source. In this case the url should be provided to resolve additional information about the media such as mime type. The stream must be open and readable. For macOS the stream should be also seekable.

將媒體設為 null QMediaContent 將導緻播放器丟棄與當前媒體源相關的所有信息,並停息與該媒體相關的所有 I/O 操作。

注意: This function returns immediately after recording the specified source of the media. It does not wait for the media to finish loading and does not check for errors. Listen for the mediaStatusChanged () 和 error () signals to be notified when the media is loaded and when an error occurs during loading.

從 Qt 5.12.2 起,URL 方案 gst-pipeline provides custom pipelines for the GStreamer backend.

player = new QMediaPlayer;
player->setMedia(QUrl("gst-pipeline: videotestsrc ! autovideosink"));
player->play();
					

QAbstractVideoSurface 被用作視頻輸齣, qtvideosink can be used as a video sink element directly in the pipeline. After that the surface will receive the video frames in QAbstractVideoSurface::present ().

class Surface : public QAbstractVideoSurface
{
public:
    Surface(QObject *p) : QAbstractVideoSurface(p) { }
    QList<QVideoFrame::PixelFormat> supportedPixelFormats(QAbstractVideoBuffer::HandleType) const override
    {
        // Make sure that the driver supports this pixel format.
        return QList<QVideoFrame::PixelFormat>() << QVideoFrame::Format_YUYV;
    }
    // Video frames are handled here.
    bool present(const QVideoFrame &) override { return true; }
};
player = new QMediaPlayer;
player->setVideoOutput(new Surface(player));
player->setMedia(QUrl("gst-pipeline: videotestsrc ! qtvideosink"));
player->play();
					

QVideoWidget 被用作視頻輸齣,且管道包含的視頻 Sink (匯點) 元素名為 qtvideosink ,當前 QVideoWidget 將被用於渲染視頻。

player = new QMediaPlayer;
videoWidget = new QVideoWidget;
videoWidget->show();
player->setVideoOutput(videoWidget);
player->setMedia(QUrl("gst-pipeline: videotestsrc ! xvimagesink name=\"qtvideosink\""));
player->play();
					

若管道包含 appsrc 元素,將使用它來推送數據從 stream .

QImage img("images/qt-logo.png");
img = img.convertToFormat(QImage::Format_ARGB32);
QByteArray ba(reinterpret_cast<const char *>(img.bits()), img.sizeInBytes());
QBuffer buffer(&ba);
buffer.open(QIODevice::ReadOnly);
player = new QMediaPlayer;
player->setMedia(QUrl("gst-pipeline: appsrc blocksize=4294967295 ! \
    video/x-raw,format=BGRx,framerate=30/1,width=200,height=147 ! \
    coloreffects preset=heat ! videoconvert ! video/x-raw,format=I420 ! jpegenc ! rtpjpegpay ! \
    udpsink host=127.0.0.1 port=5000"), &buffer);
player->play();
QMediaPlayer *receiver = new QMediaPlayer;
videoWidget = new QVideoWidget;
receiver->setVideoOutput(videoWidget);
receiver->setMedia(QUrl("gst-pipeline: udpsrc port=5000 ! \
    application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! \
    xvimagesink name=qtvideosink"));
receiver->play();
// Content will be shown in this widget.
videoWidget->show();
					

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

另請參閱 media ().

[signal] void QMediaPlayer:: stateChanged ( QMediaPlayer::State state )

發射信號,當 state 對於播放器對象已改變。

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

[slot] void QMediaPlayer:: stop ()

停止播放,然後將播放位置重置到起始。

[signal] void QMediaPlayer:: videoAvailableChanged ( bool videoAvailable )

發射信號,當視覺內容的可用性已變成 videoAvailable .

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

[signal] void QMediaPlayer:: volumeChanged ( int volume )

發射信號,當迴放音量已變成 volume .

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

[虛擬] QMediaPlayer:: ~QMediaPlayer ()

銷毀播放器對象。

[override virtual] QMultimedia::AvailabilityStatus QMediaPlayer:: availability () const

重實現: QMediaObject::availability () const.

QMediaPlayer::Error QMediaPlayer:: error () const

返迴當前錯誤狀態。

[static] QMultimedia::SupportEstimate QMediaPlayer:: hasSupport (const QString & mimeType , const QStringList & codecs = QStringList(), QMediaPlayer::Flags flags = Flags())

返迴支持的級彆,媒體播放器擁有 mimeType 和一組 codecs .

The flags 自變量允許指定額外要求,譬如:性能指示器。

const QIODevice *QMediaPlayer:: mediaStream () const

返迴媒體數據的流源。

這纔有效,若把流傳遞給 setMedia ().

另請參閱 setMedia ().

void QMediaPlayer:: setVideoOutput ( QVideoWidget * output )

附加 QVideoWidget 視頻 output 到媒體播放器。

若媒體播放器已經有附加視頻輸齣,將以新的替換它。

void QMediaPlayer:: setVideoOutput ( QGraphicsVideoItem * output )

附加 QGraphicsVideoItem 視頻 output 到媒體播放器。

若媒體播放器已經有附加視頻輸齣,將以新的替換它。

void QMediaPlayer:: setVideoOutput ( QAbstractVideoSurface * surface )

設置視頻 surface 作為媒體播放器的視頻輸齣。

若媒體播放器已經有設置,新錶麵將替換視頻輸齣。

void QMediaPlayer:: setVideoOutput (const QVector < QAbstractVideoSurface *> & surfaces )

Sets multiple video surfaces as the video output of a media player. This allows the media player to render video frames on different surfaces.

所有視頻錶麵必須至少支持某種共享的 QVideoFrame::PixelFormat .

若媒體播放器已經有設置,新錶麵將替換視頻輸齣。

該函數在 Qt 5.15 引入。

另請參閱 QAbstractVideoSurface::supportedPixelFormats .

QList < QAudio::Role > QMediaPlayer:: supportedAudioRoles () const

返迴支持的音頻角色列錶。

若不支持設置的音頻角色,返迴空列錶。

該函數在 Qt 5.6 引入。

另請參閱 audioRole .

QStringList QMediaPlayer:: supportedCustomAudioRoles () const

返迴支持的自定義音頻角色列錶。空列錶可以指示支持的自定義音頻角色未知。列錶可能並不完整。

該函數在 Qt 5.11 引入。

另請參閱 customAudioRole .