相关疑难解决方法(0)

从RemoteIO录制到AAC:数据正在写入但文件无法播放

我一直试图在iOS 5上一个renderCallback记录从RemoteIO单元直接AAC在iPad 2,我已经看到了矛盾的信息说这是不可能的-这是可能的(在评论点击这里).我想要这样做的原因是因为录制到PCM需要如此多的磁盘空间来记录任何长度 - 即使它稍后被转换为AAC.

我准备放弃了.我已经通过谷歌刮,所以,核心音频书和苹果的核心音频邮件列表和论坛,并已经到了,我没有得到任何错误的点-和我记录的东西到磁盘,但生成的文件无法播放.模拟器和设备都是这种情况.

所以...如果有人有这方面的经验,我真的很感激在正确的方向上轻推.设置是RemoteIO正在播放AUSamplers的输出并且工作正常.

以下是我在下面的代码中所做的事情

  • 指定AudioStreamBasicDescriptionremoteIO设备的格式kAudioFormatLinearPCM

  • ExtAudioFileRef 通过从RemoteIO单元获取指定客户端格式,创建并指定目标格式

  • 为RemoteID单元指定renderCallback

  • 在renderCallback中,在kAudioUnitRenderAction_PostRender阶段中写入数据

正如我所说,我没有收到任何错误,并且生成的音频文件大小显示正在写入某些内容,但该文件无法播放.也许我的格式搞砸了?

无论如何,这是我在一个瓶子里的信息和/或"Be Here Dragons"的旗帜,任何人都在冒着Core-Audio的黑暗水域.


//尝试播放文件时得到的不愉快的消息:

在此输入图像描述

//部分remoteIO设置

    // Enable IO for recording

UInt32 flag = 1;
result = AudioUnitSetProperty(ioUnit, 
                              kAudioOutputUnitProperty_EnableIO, 
                              kAudioUnitScope_Input, 
                              kInputBus, // == 1
                              &flag, 
                              sizeof(flag));
if (noErr != result) {[self printErrorMessage: @"Enable IO for recording" withStatus: result]; return;}

// Describe format - - - - - - - - - -
size_t bytesPerSample = sizeof (AudioUnitSampleType);
AudioStreamBasicDescription …
Run Code Online (Sandbox Code Playgroud)

core-audio ios ios5

7
推荐指数
1
解决办法
5647
查看次数

将远程IO音频单元的输出写入脱机文件

我有一个程序,使用连接到远程IO音频单元的AUSampler生成声音.AUSampler由在定时循环中触发的预先记录的事件控制.我想将结果声音写入文件.

关于在IO单元的渲染回调中写入文件还有一些其他问题:

但这些都涉及实时编写数据.有没有办法离线渲染文件所需的时间比播放文件少?

core-audio audiounit ios

7
推荐指数
1
解决办法
1568
查看次数

标签 统计

core-audio ×2

ios ×2

audiounit ×1

ios5 ×1