问题标签 [audioqueue]

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 回答
1219 浏览

iphone - 有谁知道如何修改 Speak Here 示例代码来录制流式音频?

有谁知道如何修改 Apple 的Speak Here代码。我需要修改它以使用 Matt Gallagher AudioStreamer类录制流式音频,但不知何故我找不到如何选择录制源......

你能帮忙吗?

0 投票
1 回答
355 浏览

iphone - 使用音频队列同时播放两个 m4a 声音

我需要为我的应用程序混合两个同时循环的 m4a 声音,而我遇到的唯一 100% 可靠的循环方法是使用 AudioQueue 和这种方法:http: //developer.apple.com/mac/library/qa/qa2009/ qa1636.html

但是,当我初始化两个 AudioQueue 实例时,我似乎只能播放一个实例。我知道 sdk 过去只支持一次播放一个压缩音频文件,但是随着 3.0 的变化,我想知道我是否缺少什么?

0 投票
1 回答
3162 浏览

ios - iPhone playback AudioQueue stops/fails to continue after pausing at a breakpoint during debugging

For some reason, it seems that stopping at a breakpoint during debugging will kill my audio queue playback.

  1. AudioQueue will be playing audio output.
  2. Trigger a breakpoint to pause my iPhone app.
  3. Subsequent resume, audio no longer gets played.
  4. ( However, AudioQueue callback functions are still getting called.)
  5. ( No AudioSession or AudioQueue errors are found.)

Since the debugger pauses the application (rather than an incoming phone call, for example) , it's not a typical iPhone interruption, so AudioSession interruption callbacks do not get triggered like in this solution.

I am using three AudioQueue buffers at 4096 samples at 22kHz and filling them in a circular manner.

Problem occurs for both multi-threaded and single-threaded mode.

  • Is there some known problem that you can't pause and resume AudioSessions or AudioQueues during a debugging session?
  • Is it running out of "queued buffers" and it's destroying/killing the AudioQueue object (but then my AQ callback shouldn't trigger).

Anyone have insight into inner workings of iPhone AudioQueues?

0 投票
2 回答
1419 浏览

iphone - 鉴于多任务处理,我如何在 iOS 中处理其他音频播放?

Audio Session Cookbook中有一节关于“在应用启动期间检查其他音频是否正在播放”。

我正在使用 MonoTouch(但请随意给出 Objective-C 的答案,API 是相同的),因此该文档中的代码如下所示:

结果是,如果我的应用程序开始播放 iPod 音乐,那么 iPod 音乐将继续播放并阻止我使用硬件音频解码器(无论如何我都不需要)。如果我的应用程序启动时没有播放 iPod 音乐,我可以使用硬件解码器。

然后我可以使用 的值otherAudioPlaying来确定是否开始播放我自己的音乐。

现在这在不支持多任务处理的旧操作系统上工作得很好。但是通过多任务处理,用户可以离开我的应用程序(背景),开始在 iPod 上播放音乐,然后重新进入我的应用程序。然后他们的 iPod 音乐将被静音,我的音乐将重新开始播放。

我希望发生的事情是当我的应用程序返回前台时让 iPod 音乐继续播放 - 即使我的应用程序在后台运行时正在播放我自己的音乐(并使用硬件解码器)。

(而且,反过来——如果我的应用程序在后台没有播放音乐,我想检测它返回时是否可以开始播放音乐)。

我怎样才能做到这一点?(最好不要突然切断我的音频,保持通常发生的良好淡出。)

编辑:我还应该指出,我所有的音频工作都是在主线程之外完成的。

0 投票
1 回答
606 浏览

iphone - 如何在 iPhone 中将电平表转换为 Hz?

我正在使用 AudioQueue 通过麦克风获取录音电平表。问题是我从中得到的是浮点数。我知道它们代表音频样本。

我需要将其转换为赫兹。我的任务是从麦克风转换数字信号录音。将其转换为 Hz 并执行一个简单的公式以获得与此数字相关的结果。

请帮忙,我真的很感谢你的帮助。

谢谢,

0 投票
3 回答
2051 浏览

audioqueue - 使用 AudioQueue 录制语音时如何获取 RAW 数据?

当我使用 AudioQueue 将语音录制到文件时,这没关系。

我尝试使用 MyInputBufferHandler 函数

AudioQueueBufferRef->mAudioData

可以获取原始数据,但是在这个 MyInputBufferHandler 函数中不能调用其他对象,比如 oStream 。

我想获取 AudioQueue Buffer 的原始数据,并将这些原始数据发送到互联网,怎么办?

0 投票
1 回答
1163 浏览

iphone - 停止并快速重放 AudioQueue

我有一个音频队列,我可以正确播放、停止、暂停,但我发现 AudioQueueStop() 函数需要很长时间才能执行。

我想立即停止然后重新开始播放音频队列,并且想知道最快的方法是什么。

在我的项目中,我有多个音频队列,我一直在播放特定的声音。有一种情况,我必须停止其中一些声音,然后立即播放它们,一次播放更多。如果只有几个音频队列我这样做还不错,但如果有很多我需要停止并重新启动,它就会开始花费很长时间。

我可以通过在音频队列上调用 stop 然后创建一个具有相同声音的新队列来伪造它,但我想知道是否有更好的方法来做到这一点。

0 投票
1 回答
1358 浏览

iphone - 实时音频队列记录回放

嘿伙计们,我正在尝试构建一个用于实时语音转换的应用程序。在第一步中,我设法将音频数据录制到指定文件并在录制后播放。现在,我尝试在循环录制音频缓冲区后立即更改用于播放音频缓冲区的代码。我的问题是,如何直接从录音 Audioqueue 中读取 Audiodata 而不是(如文档中所示)从文件中读取。我感谢任何想法,如果需要,可以显示代码部分。在此先感谢 Lukas(来自德国)

0 投票
1 回答
1348 浏览

cocoa - 音频队列服务录制到 .mp4 文件,无法播放。和魔术饼干问题

我是一个新手 Mac 程序员只有 3 个月。我遇到了音频队列服务问题,希望有人能帮助我。

我使用 Audio Queue Services API 创建了一个录音程序,并输出 AAC 格式的数据。看起来不错,一切正常。

在我使用MP4V2库(一个开源库)输出 .mp4 文件之前,问题就出现了。

问题1:

我使用魔法 cookie作为 AAC 标头来输入 MP4V2 库函数 MP4WriteSample()。.mp4 文件里面有数据,但是播放器(例如:Quicktime)不能识别.mp4 文件,它不能播放音频数据。


问题2:

我将我的音频队列基本描述格式设置如下:

并使用 AudioQueueGetProperty() 获取魔法 cookie。

比我打印出我的魔法饼干内容,像这样:

共 39 个字节。

究竟是什么意思?

每个代表的 39 个字节是什么意思?

它可以转换为 AAC 标头吗?

参考 :

为音频文件设置 Magic Cookie

为播放音频队列设置 Magic Cookie

CoreAudio - 如何确定播放aac文件的结尾


非常感谢。

瑞安

0 投票
1 回答
668 浏览

objective-c - 如何在不冻结 GUI 的情况下让 AudioQueue 播放?

我刚开始从 CoreAudio 书(粗略)中了解 AudioQueues。我做了AudioQueue播放示例教程,和apple教程示例基本一样。一切正常。

当我尝试在带有 GUI 的应用程序中实现代码时,问题就开始了。我通过将代码粘贴到 NSObject 子类的“init”方法中对其进行了测试。我可以让队列执行回调的唯一方法是在我的初始化末尾插入一个空的 DO...WHILE 循环,但这会使 GUI 冻结(显然......)!

显然,只要 AudioQueueNewOutput 为 inCallbackRunLoop 和 CallbackRunLoopMode 参数传递 NULL,AudioQueue 就应该自动在其自己的单独线程中运行。那只是没有发生。我只听到缓冲区启动后的 1.5 秒。

显然,关于事情的运作方式,我不明白一些基本的东西......

卡斯帕