QAudioFormat 类

QAudioFormat 类存储音频流参数信息。 更多...

头文件 #include <QAudioFormat>
CMakefind_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmakeQT += multimedia

公共类型

枚举AudioChannelPosition { UnknownPosition, FrontLeft, FrontRight, FrontCenter, LFE, …, BottomFrontRight }
枚举ChannelConfig { ChannelConfigUnknown, ChannelConfigMono, ChannelConfigStereo, ChannelConfig2Dot1, ChannelConfig3Dot0, …, ChannelConfigSurround7Dot1 }
枚举SampleFormat { Unknown, UInt8, Int16, Int32, Float }

公共函数

QAudioFormat()
QAudioFormat(const QAudioFormat &other)
~QAudioFormat()
qint32bytesForDuration(qint64 microseconds) const
qint32bytesForFrames(qint32 frameCount) const
intbytesPerFrame() const
intbytesPerSample() const
QAudioFormat::ChannelConfigchannelConfig() const
intchannelCount() const
intchannelOffset(QAudioFormat::AudioChannelPosition channel) const
qint64durationForBytes(qint32 bytes) const
qint64durationForFrames(qint32 frameCount) const
qint32framesForBytes(qint32 byteCount) const
qint32framesForDuration(qint64 microseconds) const
boolisValid() const
floatnormalizedSampleValue(const void *sample) const
QAudioFormat::SampleFormatsampleFormat() const
intsampleRate() const
voidsetChannelConfig(QAudioFormat::ChannelConfig config)
voidsetChannelCount(int channels)
voidsetSampleFormat(QAudioFormat::SampleFormat format)
voidsetSampleRate(int samplerate)

静态公共成员

QAudioFormat::ChannelConfigchannelConfig(Args... channels)
QAudioFormat::ChannelConfigdefaultChannelConfigForChannelCount(int channelCount)
booloperator!=(const QAudioFormat &a, const QAudioFormat &b)
booloperator==(const QAudioFormat &a, const QAudioFormat &b)

详细描述

音频格式指定原生音频流中数据的排列方式。例如,流如何被解释。

QAudioFormat 包含指定音频样本数据排列的参数。这些是频率、通道数和样本格式。下表详细描述了这些参数。

参数描述
采样率音频数据的每秒样本数,单位为赫兹。
通道数音频通道的数量(通常单声道为一个通道,立体声为两个通道)。这些是构成流中一个帧的连续样本数。
样本格式流中音频样本的格式

此类与 QAudioSourceQAudioSink 结合使用,允许您指定正在读取或写入的音频流的参数,或者在处理内存中的样本时与 QAudioBuffer 结合使用。

您可以通过 QAudioDevice 中的函数获取与音频设备兼容的音频格式。此类还允许您查询设备的可用参数值,以便您自行设置参数。有关详细信息,请参阅 QAudioDevice 类描述。您需要知道您希望播放或记录的音频流格式。

所有通道的样本将交错排列。处于同一时间的每个通道的一个样本称为一个帧,在 Qt 多媒体(以及其他地方)中。

成员类型文档

枚举 QAudioFormat::AudioChannelPosition

描述可能的音频通道位置。这些遵循在 22.2 周边声配置中使用的标准定义。

常量描述
QAudioFormat::UnknownPosition0未知位置
QAudioFormat::FrontLeft1 
QAudioFormat::FrontRight2 
QAudioFormat::FrontCenter3 
QAudioFormat::LFE4低频效果通道(低音炮)
QAudioFormat::BackLeft5 
QAudioFormat::BackRight6 
QAudioFormat::FrontLeftOfCenter7 
QAudioFormat::FrontRightOfCenter8 
QAudioFormat::BackCenter9 
QAudioFormat::LFE219 
QAudioFormat::SideLeft10 
QAudioFormat::SideRight11 
QAudioFormat::TopFrontLeft13 
QAudioFormat::TopFrontRight15 
QAudioFormat::TopFrontCenter14 
QAudioFormat::TopCenter12 
QAudioFormat::TopBackLeft16 
QAudioFormat::TopBackRight18 
QAudioFormat::TopSideLeft20 
QAudioFormat::TopSideRight21 
QAudioFormat::TopBackCenter17 
QAudioFormat::BottomFrontCenter22 
QAudioFormat::BottomFrontLeft23 
QAudioFormat::BottomFrontRight24 

枚举 QAudioFormat::ChannelConfig

此枚举描述标准化的音频通道布局。最常见的配置是单声道、立体声、2.1(立体声加低音)、5.1 周边声和 7.1 周边声配置。

常量描述
QAudioFormat::ChannelConfigUnknown0通道配置未知。
QAudioFormat::ChannelConfigMonoQtPrivate::channelConfig(FrontCenter)音频有一个中心通道。
QAudioFormat::ChannelConfigStereoQtPrivate::channelConfig(FrontLeft, FrontRight)音频有两个通道,左和右。
QAudioFormat::ChannelConfig2Dot1QtPrivate::channelConfig(FrontLeft, FrontRight, LFE)音频有三个通道,左、右和 LFE(低频效果)。
QAudioFormat::ChannelConfig3Dot0QtPrivate::channelConfig(FrontLeft, FrontRight, FrontCenter)音频有三个通道,左、右和中心。
QAudioFormat::ChannelConfig3Dot1QtPrivate::channelConfig(FrontLeft, FrontRight, FrontCenter, LFE)音频有四个通道,左、右、中心和李FE(低频效果)。
QAudioFormat::ChannelConfigSurround5Dot0QtPrivate::channelConfig(前左,前右,前中,后左,后右)音频有五个声道,左声道,右声道,中心声道,后左,和后右
QAudioFormat::ChannelConfigSurround5Dot1QtPrivate::channelConfig(前左,前右,前中,LFE,后左,后右)音频有6个声道,左声道,右声道,中心声道,LFE,后左,和后右
QAudioFormat::ChannelConfigSurround7Dot0QtPrivate::channelConfig(前左,前右,前中,后左,后右,侧左,侧右)音频有7个声道,左声道,右声道,中心声道,后左后右侧左,和侧右
QAudioFormat::ChannelConfigSurround7Dot1QtPrivate::channelConfig(前左,前右,前中,LFE,后左,后右,侧左,侧右)音频有8个声道,左声道,右声道,中心声道,LFE,后左后右侧左,和侧右

枚举 QAudioFormat::SampleFormat

Qt始终会期待并使用与主机平台字节序一致的样本。当您自己处理来自外部源音频数据时,请确保在将其写入QAudioSinkQAudioBuffer之前将它们转换为正确的字节序。

常量描述
QAudioFormat::Unknown0未设置
QAudioFormat::UInt81样本是8位无符号整数
QAudioFormat::Int162样本是16位有符号整数
QAudioFormat::Int323样本是32位有符号整数
QAudioFormat::Float4样本是浮点数

成员函数文档

[noexcept default] QAudioFormat::QAudioFormat()

构造一个新的音频格式。

值初始化如下

[noexcept default] QAudioFormat::QAudioFormat(const QAudioFormat &other)

使用other构造一个新的音频格式。

[noexcept default] QAudioFormat::~QAudioFormat()

销毁此音频格式。

qint32 QAudioFormat::bytesForDuration(qint64 microseconds) const

返回为microseconds所需此音频格式的字节数。

如果此格式无效,则返回0。

注意,如果microseconds不是sampleRate的精确分数,则可能会发生一些舍入。

另请参阅durationForBytes

qint32 QAudioFormat::bytesForFrames(qint32 frameCount) const

返回此格式frameCount帧所需的字节数。

如果此格式无效,则返回0。

另请参阅bytesForDuration

[constexpr] int QAudioFormat::bytesPerFrame() const

返回此格式中表示一个帧(每个通道的样本)所需的字节数。

如果此格式无效,则返回0。

[constexpr noexcept] int QAudioFormat::bytesPerSample() const

返回此格式中表示一个样本所需的字节数。

如果此格式无效,则返回0。

[static constexpr] template <typename... Args> QAudioFormat::ChannelConfig QAudioFormat::channelConfig(Args... channels)

返回给定 channels 的当前通道配置。

另请参阅 setChannelConfig

[constexpr noexcept] QAudioFormat::ChannelConfig QAudioFormat::channelConfig() const

返回当前通道配置。

[constexpr noexcept] int QAudioFormat::channelCount() const

返回当前的通道数量值。

另请参阅 setChannelCount

[noexcept] int QAudioFormat::channelOffset(QAudioFormat::AudioChannelPosition channel) const

返回给定格式中音频帧内某个音频 channel 的位置。如果此格式中不存在通道或通道配置未知,则返回 -1。

[static] QAudioFormat::ChannelConfig QAudioFormat::defaultChannelConfigForChannelCount(int channelCount)

返回对 channelCount 的默认通道配置。

默认配置定义了最多 8 个通道,并对应于标准单声道、立体声和环绕配置。对于更高的通道数量,这仅使用在 QAudioFormat::AudioChannelPosition 中定义的前 channelCount 个音频通道。

qint64 QAudioFormat::durationForBytes(qint32 bytes) const

返回 bytes 在此格式中表示的微秒数。

如果此格式无效,则返回0。

请注意,如果 bytes 不是每帧字节数的确切倍数,可能会发生一些舍入。

另请参阅bytesForDuration

qint64 QAudioFormat::durationForFrames(qint32 frameCount) const

返回 frameCount 帧在此格式中表示的微秒数。

qint32 QAudioFormat::framesForBytes(qint32 byteCount) const

返回由 byteCount 在此格式中表示的帧数。

请注意,如果 byteCount 不是每帧字节数的确切倍数,可能会发生一些舍入。

每个帧在每个通道中都有一个样本。

另请参阅 framesForDuration.

qint32 QAudioFormat::framesForDuration(qint64 microseconds) const

返回表示此格式中 microseconds 所需的帧数。

注意,如果microseconds不是sampleRate的精确分数,则可能会发生一些舍入。

[constexpr noexcept] bool QAudioFormat::isValid() const

如果所有参数都有效,则返回 true

float QAudioFormat::normalizedSampleValue(const void *sample) const

sample 值标准化到 -1 和 1 之间的数值。该方法取决于 QaudioFormat。

[constexpr noexcept] QAudioFormat::SampleFormat QAudioFormat::sampleFormat() const

返回当前样本格式。

另请参阅 setSampleFormat.

[constexpr noexcept] int QAudioFormat::sampleRate() const

返回当前的采样速率(赫兹)。

另请参阅 setSampleRate.

[noexcept] void QAudioFormat::setChannelConfig(QAudioFormat::ChannelConfig config)

将通道配置设置为 config

将音频格式的通道配置设置为标准音频通道配置之一。

注意:这将也会更改通道数。

另请参阅 channelConfig.

[constexpr noexcept] void QAudioFormat::setChannelCount(int channels)

将通道数设置为 channels。设置此值还将通道配置设置为 ChannelConfigUnknown

另请参阅 channelCount.

[constexpr noexcept] void QAudioFormat::setSampleFormat(QAudioFormat::SampleFormat format)

将样本格式设置为 format

另请参阅 sampleFormat() 和 QAudioFormat::SampleFormat.

[constexpr noexcept] void QAudioFormat::setSampleRate(int samplerate)

将采样速率设置为 samplerate 赫兹。

另请参阅 sampleRate.

相关非成员

bool operator!=(const QAudioFormat &a, const QAudioFormat &b)

如果音频格式 a 不等于 b,则返回 true,否则返回 false

bool operator==(const QAudioFormat &a, const QAudioFormat &b)

如果音频格式a等于b,则返回true,否则返回false

© 2024 Qt公司有限公司。本文档中包含的文档贡献版权属于各贡献者。本文档受到由自由软件基金会发布、在GNU自由文档许可证第1.3版下提供的许可。Qt及其相关标志是芬兰和/或在其他国家和地区Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。