QAudioFormat 类
QAudioFormat 类存储音频流参数信息。 更多...
头文件 | #include <QAudioFormat> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
qmake | QT += 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() | |
qint32 | bytesForDuration(qint64 microseconds) const |
qint32 | bytesForFrames(qint32 frameCount) const |
int | bytesPerFrame() const |
int | bytesPerSample() const |
QAudioFormat::ChannelConfig | channelConfig() const |
int | channelCount() const |
int | channelOffset(QAudioFormat::AudioChannelPosition channel) const |
qint64 | durationForBytes(qint32 bytes) const |
qint64 | durationForFrames(qint32 frameCount) const |
qint32 | framesForBytes(qint32 byteCount) const |
qint32 | framesForDuration(qint64 microseconds) const |
bool | isValid() const |
float | normalizedSampleValue(const void *sample) const |
QAudioFormat::SampleFormat | sampleFormat() const |
int | sampleRate() const |
void | setChannelConfig(QAudioFormat::ChannelConfig config) |
void | setChannelCount(int channels) |
void | setSampleFormat(QAudioFormat::SampleFormat format) |
void | setSampleRate(int samplerate) |
静态公共成员
QAudioFormat::ChannelConfig | channelConfig(Args... channels) |
QAudioFormat::ChannelConfig | defaultChannelConfigForChannelCount(int channelCount) |
相关非成员
bool | operator!=(const QAudioFormat &a, const QAudioFormat &b) |
bool | operator==(const QAudioFormat &a, const QAudioFormat &b) |
详细描述
音频格式指定原生音频流中数据的排列方式。例如,流如何被解释。
QAudioFormat 包含指定音频样本数据排列的参数。这些是频率、通道数和样本格式。下表详细描述了这些参数。
参数 | 描述 |
---|---|
采样率 | 音频数据的每秒样本数,单位为赫兹。 |
通道数 | 音频通道的数量(通常单声道为一个通道,立体声为两个通道)。这些是构成流中一个帧的连续样本数。 |
样本格式 | 流中音频样本的格式 |
此类与 QAudioSource 或 QAudioSink 结合使用,允许您指定正在读取或写入的音频流的参数,或者在处理内存中的样本时与 QAudioBuffer 结合使用。
您可以通过 QAudioDevice 中的函数获取与音频设备兼容的音频格式。此类还允许您查询设备的可用参数值,以便您自行设置参数。有关详细信息,请参阅 QAudioDevice 类描述。您需要知道您希望播放或记录的音频流格式。
所有通道的样本将交错排列。处于同一时间的每个通道的一个样本称为一个帧,在 Qt 多媒体(以及其他地方)中。
成员类型文档
枚举 QAudioFormat::AudioChannelPosition
描述可能的音频通道位置。这些遵循在 22.2 周边声配置中使用的标准定义。
常量 | 值 | 描述 |
---|---|---|
QAudioFormat::UnknownPosition | 0 | 未知位置 |
QAudioFormat::FrontLeft | 1 | |
QAudioFormat::FrontRight | 2 | |
QAudioFormat::FrontCenter | 3 | |
QAudioFormat::LFE | 4 | 低频效果通道(低音炮) |
QAudioFormat::BackLeft | 5 | |
QAudioFormat::BackRight | 6 | |
QAudioFormat::FrontLeftOfCenter | 7 | |
QAudioFormat::FrontRightOfCenter | 8 | |
QAudioFormat::BackCenter | 9 | |
QAudioFormat::LFE2 | 19 | |
QAudioFormat::SideLeft | 10 | |
QAudioFormat::SideRight | 11 | |
QAudioFormat::TopFrontLeft | 13 | |
QAudioFormat::TopFrontRight | 15 | |
QAudioFormat::TopFrontCenter | 14 | |
QAudioFormat::TopCenter | 12 | |
QAudioFormat::TopBackLeft | 16 | |
QAudioFormat::TopBackRight | 18 | |
QAudioFormat::TopSideLeft | 20 | |
QAudioFormat::TopSideRight | 21 | |
QAudioFormat::TopBackCenter | 17 | |
QAudioFormat::BottomFrontCenter | 22 | |
QAudioFormat::BottomFrontLeft | 23 | |
QAudioFormat::BottomFrontRight | 24 |
枚举 QAudioFormat::ChannelConfig
此枚举描述标准化的音频通道布局。最常见的配置是单声道、立体声、2.1(立体声加低音)、5.1 周边声和 7.1 周边声配置。
常量 | 值 | 描述 |
---|---|---|
QAudioFormat::ChannelConfigUnknown | 0 | 通道配置未知。 |
QAudioFormat::ChannelConfigMono | QtPrivate::channelConfig(FrontCenter) | 音频有一个中心通道。 |
QAudioFormat::ChannelConfigStereo | QtPrivate::channelConfig(FrontLeft, FrontRight) | 音频有两个通道,左和右。 |
QAudioFormat::ChannelConfig2Dot1 | QtPrivate::channelConfig(FrontLeft, FrontRight, LFE) | 音频有三个通道,左、右和 LFE(低频效果)。 |
QAudioFormat::ChannelConfig3Dot0 | QtPrivate::channelConfig(FrontLeft, FrontRight, FrontCenter) | 音频有三个通道,左、右和中心。 |
QAudioFormat::ChannelConfig3Dot1 | QtPrivate::channelConfig(FrontLeft, FrontRight, FrontCenter, LFE) | 音频有四个通道,左、右、中心和李FE(低频效果)。 |
QAudioFormat::ChannelConfigSurround5Dot0 | QtPrivate::channelConfig(前左,前右,前中,后左,后右) | 音频有五个声道,左声道,右声道,中心声道,后左,和后右。 |
QAudioFormat::ChannelConfigSurround5Dot1 | QtPrivate::channelConfig(前左,前右,前中,LFE,后左,后右) | 音频有6个声道,左声道,右声道,中心声道,LFE,后左,和后右。 |
QAudioFormat::ChannelConfigSurround7Dot0 | QtPrivate::channelConfig(前左,前右,前中,后左,后右,侧左,侧右) | 音频有7个声道,左声道,右声道,中心声道,后左,后右,侧左,和侧右。 |
QAudioFormat::ChannelConfigSurround7Dot1 | QtPrivate::channelConfig(前左,前右,前中,LFE,后左,后右,侧左,侧右) | 音频有8个声道,左声道,右声道,中心声道,LFE,后左,后右,侧左,和侧右。 |
枚举 QAudioFormat::SampleFormat
Qt始终会期待并使用与主机平台字节序一致的样本。当您自己处理来自外部源音频数据时,请确保在将其写入QAudioSink或QAudioBuffer之前将它们转换为正确的字节序。
常量 | 值 | 描述 |
---|---|---|
QAudioFormat::Unknown | 0 | 未设置 |
QAudioFormat::UInt8 | 1 | 样本是8位无符号整数 |
QAudioFormat::Int16 | 2 | 样本是16位有符号整数 |
QAudioFormat::Int32 | 3 | 样本是32位有符号整数 |
QAudioFormat::Float | 4 | 样本是浮点数 |
成员函数文档
[noexcept default]
QAudioFormat::QAudioFormat()
构造一个新的音频格式。
值初始化如下
- sampleRate() = 0
- channelCount() = 0
- sampleFormat() = QAudioFormat::Unknown
[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公司有限公司的商标。所有其他商标均为其各自所有者的财产。