问题标签 [audioqueueservices]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1153 浏览

iphone - 模拟器中的 AudioQueue 回调,但不在设备上

我目前正在 iPhone 上开发音频处理应用程序。它基于 Apple 的 SpeakHere 示例代码,旨在实时处理和播放音频。该代码在模拟器中运行良好,但在设备上测试时不能回调。

回调函数是这样的:

其他部分与 SpeakHere 示例代码相同。

那么与这种奇怪行为相关的问题是什么?任何见解将不胜感激。如果需要更多信息,请告诉我。

非常感谢。

干杯,

曼卡

0 投票
1 回答
931 浏览

iphone - iPhone媒体播放器框架访问原始文件

我有兴趣使用 iPhone 上的媒体播放器框架来访问用户库中的音频。我希望能够加载给定的音频文件,然后对其进行一些专门的过滤。

理想情况下,我希望能够直接加载音频文件(或其中的一部分以进行流式传输),然后使用音频转换器服务执行解压缩。一旦我有了线性 PCM 数据,我想在将音频直接提供给音频队列之前对其执行一些过滤。

这在 iPhone 上可行吗?

如果是这样,谁能告诉我如何直接访问音频文件?是否只是使用“URL”使用 NSFile 加载它(大概我通过 MPMediaItemPropertyAssetURL 获得)?还是我需要做一些更复杂的事情?

干杯!

0 投票
1 回答
591 浏览

core-audio - Mac OS X 10.6.7 上的 kAudioQueueProperty_CurrentLevelMeter

我正在为 kAudioQueueProperty_CurrentLevelMeter 查询 AudioQueueRef,而在 10.6.6 上完美运行的代码现在在 level.mAveragePower 和 level.mPeakPower 中只给了我零。有人知道操作系统的任何变化吗?有人可以指出我可以验证这在 10.6.7 中不再工作的示例代码吗?

谢谢,马丁

0 投票
2 回答
545 浏览

iphone - 音频队列回调函数是否必须是 C 风格的函数?或者它可以是一种客观的 C 风格方法吗?

音频队列回调函数是否必须是 C 风格的函数?或者它可以是一种客观的 C 风格方法吗?

0 投票
2 回答
2136 浏览

iphone - 将 AudioQueueBufferRef 数据传递给 FFT 函数!

我正在尝试通过 iphone 上的麦克风计算给定声音过程的频率。

我已经阅读了有关 FFT 的所有帖子(包括所有苹果代码示例,例如 aurioTouch、SpeakHere),但没有解决这个问题。

我正在使用 AudioQueue,但是如何从 AudioQueue 回调函数 (MyInputBufferHandler) inBuffer->mAudioData 传递原始数据“AudioQueueBufferRef”。到实际 FFT "DSPSplitComplex" 数据类型,所以我可以计算它。所有这些都使用 Accelerate 框架。

FFT 函数。

我还没有找到关于如何做到这一点的任何地方。请帮忙!

0 投票
2 回答
760 浏览

iphone - 使用音频队列播放和渲染流

我目前正在我的 iOS 应用程序上播放流,但我们想要添加的一个功能是输出波的可视化。我使用输出音频队列来播放流,但找不到读取输出缓冲区的方法。这可以使用音频队列来实现还是应该使用较低级别的 api 来实现?

0 投票
1 回答
923 浏览

iphone - 使用 Objective C(音频队列服务)从 FFMPeg 获取准确时间

我的 iPhone 应用程序使用 FFMPeg 播放音频文件。

我从播放音频(从微秒转换后的分钟和秒,由 FFMPeg 给出)中获取经过的时间(向用户显示),如下所示:

一切正常,但是当我向后或向前滑动以播放歌曲的另一部分时,无论当前位置如何,经过的时间都会回到零。计时器将始终归零。

我知道我应该做一些数学来跟踪旧时间和新时间,也许构造另一个时钟左右,也许实现另一个回调函数,等等......我不确定我应该走什么路。

我的问题是

1)在歌曲中后退/前进时跟踪经过时间的最佳方法是什么,避免时钟总是回到零?

2)我应该深入研究 FFMPeg 函数还是应该坚持使用 Objective-C 和 Cocoa Touch 来解决这个问题?

拜托,我需要一些经验丰富的程序员的建议/想法。我被困住了。预先感谢!

0 投票
2 回答
1202 浏览

iphone - 计算音频功率峰值 iOS

由于渐进的见解而编辑了问题:-)

我正在创建一个正在收听音频输入的应用程序。我希望它计算峰值。(峰值将在大约 10 Hz 的最大频率处。)

经过大量搜索,我最终使用了 AudioQueue 服务,因为它可以为我提供原始输入数据。我正在使用 SpeakHere 示例的精简版本(不播放),但不是简单地将缓冲区写入文件系统,我想查看单个样本数据。

认为我现在走在正确的轨道上,但我不明白如何使用缓冲区。我正在尝试隔离一个样本的数据。因此,以下函数中的 for 循环是否有意义,我应该在其中放入什么来获取一个样本?

(也许我不应该删除这么多原来的问题……政策是什么?)

最初我正在考虑使用 AurioTouch 示例,但正如评论中指出的那样,它使用吞吐量,我只需要输入。这也是一个比 SpeakHere 复杂得多的例子。

0 投票
1 回答
2986 浏览

iphone - iOS,音频队列:缓冲区大小不固定

我在我的应用程序中使用音频队列服务。分配缓冲区时,我将缓冲区大小设置为 30000 个样本:

但是回调的后续调用是使用以下inNumberPacketDescriptions 进行的:

它们并不总是等于 30000。为什么?

记录格式配置(使用CAStreamBasicDescription):

使用了3 个缓冲区。

0 投票
1 回答
462 浏览

iphone - 是否可以从音频队列服务访问解码的音频数据?

我在 App Store 中有一个应用程序,用于通过网络流式传输压缩的音乐文件。我正在使用音频队列服务来处理文件的播放。

我想在流式传输文件时对它们进行一些处理。我测试了音频缓冲区中的数据,但它不是解压缩的音频。如果我正在流式传输 mp3 文件,则缓冲区只是 mp3 数据的一小部分。

我的问题是:使用音频队列服务时是否可以访问未压缩的 PCM 数据?我是否被迫改用音频单元?