首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用扩展音频文件服务(ExtAudioFileRead)提取浮动

使用扩展音频文件服务(ExtAudioFileRead)提取浮动
EN

Stack Overflow用户
提问于 2011-01-24 00:56:03
回答 1查看 2.3K关注 0票数 3

我试图编写一个程序来记录音频文件中样本的浮动值。我的步骤如下:

(AudioStreamBasicDescription)

  • Apply

  • 打开扩展音频文件

  • 设置音频格式到我的扩展音频文件

  • 将AudioBufferList

  • Read扩展音频文件设置为AudioBufferList,ExtAudioFileRead()

  • Log浮点值为AudioBufferList

我已经将整个90行类放到了下面的gist中:https://gist.github.com/792630

问题是,如果我将音频格式应用到我的扩展音频文件(步骤3),我在试图读取该文件时会出错(步骤5)。如果我注释掉步骤5,该文件读起来很好,但我不会强制执行读取的格式,并且在日志记录时不会得到浮动。

如有任何建议,将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-24 01:50:17

我现在注意到的一件事是,您正在堆栈上分配一个AudioBufferList,但是将mNumberBuffers设置为2。在堆栈上使用ABLs是可以的,但是如果这样做,它们只能包含一个缓冲区。但是由于您已经将客户端格式设置为mono,所以这并不是真正的问题。

真正的问题是,您没有将fileRef的地址传递给ExtAudioFileOpenURL- -而是传递值--因此调用无法正确地初始化变量。

电话应该是这样的:

代码语言:javascript
复制
CheckResult(ExtAudioFileOpenURL(inputFileURL, &fileRef), "ExtAudioFileOpenURL failed");

我这么做了,编译了你的代码,一切都很顺利。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4777664

复制
相关文章

相似问题

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