首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >音频单元RemoteIO设置交错浮动给kAudioUnitErr_FormatNotSupported

音频单元RemoteIO设置交错浮动给kAudioUnitErr_FormatNotSupported
EN

Stack Overflow用户
提问于 2021-07-15 18:56:27
回答 1查看 119关注 0票数 0

我正在与音频单元RemoteIO的工作,以获得一个低延迟音频输出。我的问题是AFAIK音频单元只接受几种音频格式,这取决于硬件。我的问题是,我有一个C++ DSP声音引擎,它与浮动交织PCM工作。我不想实现格式转换器,因为它可以在远程IO回调中减慢速度。我尝试获得具有以下格式的低延迟音频单元:

代码语言:javascript
复制
AudioStreamBasicDescription const audioDescription = {
            .mSampleRate        = defaultSampleRate,
            .mFormatID          = kAudioFormatLinearPCM,
            .mFormatFlags       = kAudioFormatFlagIsFloat,
            .mBytesPerPacket    = defaultSampleRate * STEREO_CHANNEL,
            .mFramesPerPacket   = 1,
            .mBytesPerFrame     = STEREO_CHANNEL * sizeof(Float32),
            .mChannelsPerFrame  = STEREO_CHANNEL,
            .mBitsPerChannel    = 8 * sizeof(Float32),
            .mReserved          = 0
        };
        
        status = AudioUnitSetProperty(audioUnit,
                                          kAudioUnitProperty_StreamFormat,
                                          kAudioUnitScope_Input,
                                          kOutputBus,
                                          &audioDescription,
                                          sizeof(audioDescription));

这在错误代码kAudioUnitErr_FormatNotSupported -10868中失败。如果我试图获得一个浮动PCM非交错音频流与以下内容:

代码语言:javascript
复制
AudioStreamBasicDescription const audioDescription = {
            .mSampleRate        = defaultSampleRate,
            .mFormatID          = kAudioFormatLinearPCM,
            .mFormatFlags       = kAudioFormatFlagIsFloat | kAudioFormatFlagIsPacked | kAudioFormatFlagIsNonInterleaved,
            .mBytesPerPacket    = sizeof(float),
            .mFramesPerPacket   = 1,
            .mBytesPerFrame     = sizeof(float),
            .mChannelsPerFrame  = STEREO_CHANNEL,
            .mBitsPerChannel    = 8 * sizeof(float),
            .mReserved          = 0
        };
        
        status = AudioUnitSetProperty(audioUnit,
                                          kAudioUnitProperty_StreamFormat,
                                          kAudioUnitScope_Input,
                                          kOutputBus,
                                          &audioDescription,
                                          sizeof(audioDescription));

一切都很好。然而,我想获得一个交错的音频流,让我的DSP引擎工作,没有格式转换。这有可能吗?

PS。等待hotpaw2引导我:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-16 21:44:38

您的错误可能是由于这一行:

代码语言:javascript
复制
.mBytesPerPacket    = defaultSampleRate * STEREO_CHANNEL,
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68399426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档