问题标签 [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 回答
1475 浏览

iphone - 音频单元,设置格式失败并显示 -10581

我无法弄清楚为什么以下返回 OSStatus -10851:

适用于模拟器,但不适用于设备。

这是其余的代码:

0 投票
2 回答
522 浏览

core-audio - 如何快速循环播放音频块并在 Core Audio 中确定它们的样本值(幅度/功率电平/等)?

我想要完成的基本上如下:

  1. 打开一个文件,根据它的持续时间确定我需要多少“样本”
  2. 将文件分成 x 个样本;确定每个样本的(平均)功率电平/幅度。
  3. 使用这些样本值,继续绘制代表音频的波形(也许遵循这些指南

我花了大约三天时间,仔细搜索在线论坛、书籍和 API,但无济于事。我被困在最关键的一步 -> 确定音频块(缓冲区)的功率水平。

在阅读了大部分即将出版的Core Audio 书籍之后,我已经对 AudioQueues、Audio Units 以及在某种程度上 - OpenAL 的低级环境感到满意。但是,我看到的所有示例和解释(在本书和网络上的其他地方)都涉及在播放或录制音频文件时(即实时)确定功率电平值。

然而,我的目的是快速有效地确定磁盘上给定文件的这些值,而无需实时回放。任何关于我需要查看哪些库、功能的指导将不胜感激。

谢谢。

0 投票
3 回答
3962 浏览

iphone - 如何在 ios 中使用 AudioQueue 对 speex 进行编码/解码

如果有人有使用 AudioQueue 编码/解码 speex 音频格式的经验?

我试图通过编辑 SpeakHere 示例来实现它。但不是成功!

从苹果 API 文档中,AudioQueue 可以支持编解码器,但我找不到任何示例。谁能给我一些建议?我已经在 XCode 4 的项目中成功编译了 speex 编解码器。

0 投票
1 回答
954 浏览

ios - 在 iOS 上混合和均衡多个压缩音频流

正如标题所说,我要做的就是解码多个压缩的音频流/文件——它将从修改后的 MP4 文件中提取——并同时对它们进行实时 EQ。

我已经阅读了大部分 Apple 的文档。

我试过AudioQueues,但我无法进行均衡,因为一旦压缩音频进入,它就不会出来......所以我无法操纵它。

音频单元似乎没有任何组件来处理 AAC 和 MP3 的解压缩 - 如果我是对的,它的转换器只能处理从一种 LPCM 格式转换为另一种格式。

大约一个半月以来,我一直在尝试制定解决方案。

我现在在想,使用 3rd 方解码器(上帝帮助我;我不知道如何使用这些,源代码是希腊语;哦,有什么建议吗?:x),然后将解码后的 LPCM 输入AudioQueues 在回调时做 EQ。

也许我在这里遗漏了一些东西。建议?:(

0 投票
1 回答
2873 浏览

objective-c - 在 iPhone 上录制 AMR 文件

我一直在使用 AVAudioRecorder 在 iPhone 上录制音频,但文件太大而无法上传到 EDGE 网络上的服务器。我发现如果我可以将音频压缩为 AMR 格式,与原始 PCM 音频文件相比,它的大小会大大减小。

我找到了一个用纯 C 编写的 AMR 编码和解码库(3GPP AMR 浮点语音编解码器)。我现在可以使用这个库将 WAVE 转换为 AMR,但是,iPhone 上的编码过程太长了。我必须等待 22 秒才能对 1 分钟的 Wave 文件进行编码。

我确实需要与编码一起录制以消除编码等待,但 AVAudioRecorder 仅通过创建新文件提供录制功能。似乎唯一的方法是使用 AudioQueue,它通过内存缓冲区提供记录。

问题是我不知道如何集成音频队列和 AMR 库这两个东西。谁能帮帮我?

0 投票
1 回答
774 浏览

iphone - ios AudioQueue 流式传输多首歌曲

我正在使用 AudioQueue 从任意源流式传输音频(该类基本上只需要一个为其提供数据包的委托),我创建了一个包含所有功能的类,让我们调用 AudioQueueClass,我正在使用这个类来播放很多歌曲,在每首歌曲之间我释放我的课程并创建一个新的 AudioQueueClass 实例来播放下一首歌曲,我看到了两个我无法找到原因的问题,也许你们中的一些人遇到了这些问题并且可以解决一盏灯

1-现在,AudioQueue 播放上一首歌曲的几秒钟,然后回到当前歌曲,不知道为什么会发生这种情况,因为我正在为每首歌曲创建一个新队列,我相信我正在处理我的适当地排队——一些代码要遵循

2-这个更糟糕,有时当我进入第三或第四首歌曲时,音频队列停止播放......我相信问题是 AudioQueueInputCallback inCallbackProc 停止被调用,我猜这是因为队列停止播放和处理数据包,但无法找出原因...另外需要注意的是,这仅在我从外部源流式传输到设备时发生,如果我只是在本地获取文件数据并将其用作数据包,我会听到“口吃”音乐,但它恢复并播放良好,而在流媒体的情况下,声音只是停止(很奇怪)

这是我用来处理音频队列的代码,不再发布,因为不确定要发布哪些相关部分,如果您想查看任何代码并发布它,请告诉我

0 投票
2 回答
2317 浏览

iphone - AudioQueue如何找出排队数据的播放长度

我正在使用 AudioQueue 流式传输一些歌曲,我的问题是如何判断已排队缓冲区的播放长度?我想一次传输两秒的数据,我遇到的问题是我怎么知道有多少字节实际上对应于两秒的音乐(所以我总是可以领先两秒)。

谢谢

丹尼尔

0 投票
1 回答
2186 浏览

iphone - 如何在不使用 AudioQueueRef 的情况下在 AudioQueue 中设置音量?

如何在不使用 AudioQueueRef 的情况下在 AudioQueue 中设置音量?

我在 Stack Overflow 上提到了很多关于此的问题,但它们都使用 AudioQueueRef 对象。

是否可以在不使用 AudioQueueRef 的情况下这样做?

0 投票
1 回答
418 浏览

iphone - AudioQueue 捕获并返回不同的缓冲区大小

我有一个基于 AudioQueue 的应用程序几乎可以完美运行。但是,我遇到了一个问题。当我调用 AudioQueueAllocateBuffer 时,我特别要求缓冲区大小为 512(因为我正在对数据执行 FFT)。但是,当回调触发时,我发现有时我会得到小于 512 的缓冲区大小。

这真让人生气。我唯一的解决方案是设置某种传入数据的内部缓冲以解决这些问题吗?为什么我要为分配缓冲区指定一个值,然后 iPhone 会返回不同数量的样本?

任何帮助将不胜感激,因为我快要发疯了。

干杯!

奥斯卡

0 投票
1 回答
893 浏览

objective-c - 在 AudioFileOpenURL 之后附加音频的问题

在向其附加额外录音后播放音频数据时出现问题。以下是不返回任何错误的一般事件序列:

我可以启动和停止队列以追加记录,效果很好。音频完美附加,我可以按预期播放。当我重新打开文件并尝试追加时出现问题:

我注意从最后一个音频包恢复录制,事实上,数据正在附加到文件中,因为我可以看到文件大小在增长。但是,当我播放文件时,我听不到附加的音频。它播放原始音频,但在我期望听到附加音频之前就停止了。

我尝试了不同的组合,围绕 AudioFileOptimize 移动并重置魔法 cookie 无济于事。

我使用的音频格式如下:

这里发生了什么?为什么我重新打开 AudioFileID 后,附加的音频无法播放?