问题标签 [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.
iphone - 使用 AudioQueueServices 提取 mp3 文件持续时间
我已经使用 AudioQueueServices 实现了一个流式 mp3 播放器,它通过 NSURLConnection 下载 mp3。播放、暂停和搜索效果很好,但是我不知道如何在 mp3 文件仍在下载时提取音频的持续时间。我希望能够从 id3 标签中提取信息,但对如何做到这一点一无所知。有什么想法吗?
iphone - iPhone SDK 中是否有 FSRef 或者是否有可以替代 FSRef 的东西?
这个问题可能听起来很愚蠢,但问题是:我正在学习如何使用音频队列,而我采取的示例 (aqtest) 对我来说是一个很好的指南,直到我最近发现 aqtest 不适用于 iPhone . (愚蠢的我)我在互联网上服务,发现没有适用于iPhone的FSRef。
如果可能的话,我想找到一种解决 FSRef 问题的方法。那么问题来了:我可以使用其他东西来代替 iPhone SDK 上存在的 FSRef 吗?还是我错过了什么?
iphone - 如何正确处理 Cocoa Touch (Objective-C cross C++) 中的前向声明/#import?
我正在尝试编写此头文件:
AQPlayer 是一个用 C++ 编写的 .mm 文件。
我试图在这里进行类前向声明,但它向我抱怨:
error: cannot find interface declaration for 'AQPlayer'
所以我尝试“#import”头文件,但它抱怨一些完全不正确和奇怪的东西。这是抱怨的错误的一部分:
在包含的文件中
我错过了什么吗?我不能为此做一个前向声明吗?
iphone - 如何获取 iPhone 上资源的文件系统路径?
在 iPhone 上,我需要获取资源的路径。好的,做到了,但是当涉及到 CFURLCreateFromFileSystemRepresentation 的事情时,我只是不知道如何解决这个问题。为什么会出现这个错误?任何解决方案或解决方法将不胜感激。先感谢您。
为了在 iPhone 上使用 AudioQueue 播放音频,我查看了以下示例:SpeakHere、AudioQueueTools(来自 SimpleSDK 目录)和 AudioQueueTest。我试着做这做那,试图把谜题放在一起。现在,我陷入了困境。由于上面的 sndFile 抛出的异常,程序崩溃了。
我正在使用 AVAudioPlayer 在我的 iPhone 游戏中播放所有声音。在真正的 iPhone 设备上,当播放声音时结果非常滞后,所以我决定需要使用 AudioQueue。
objective-c - 使用 AudioQueue 创建文件时缺少块
所以一个 .wav 文件有几个标准块。在我使用的大多数文件中,首先是“RIFF”块,然后是“fmt”块,然后是“DATA”块。使用 AVAudioRecorder 录制时,会创建这些块(尽管在“DATA”块之前会创建一个额外的“FLLR”。)
使用 AudioQueue 创建文件时,不会创建那些标准块。相反,AudioQueue 按顺序创建“caff”、“desc”、“lpcm”、“free”和“data”块。
这是怎么回事?不是需要“RIFF”和“fmt”块吗?如何强制包含这些块?
我正在通过以下方式创建文件:
AudioFileCreateWithURL(URL, kAudioFileCAFType, &inputDataFormat, kAudioFileFlags_EraseFile, &AudioFile);
inputDataFormat 是具有完整属性的 AudioStreamBasicDescription。
那么,至少,如何使用 AudioQueue 编写“RIFF”和“fmt”块?
谢谢。
iphone - 使用 AudioQueue 读取音频缓冲区数据
我正在尝试通过 AudioQueue 读取音频数据。当我这样做时,我可以验证文件的位深度是否为 16 位。但是当我得到实际的样本数据时,我只看到从 -128 到 128 的值。但我也看到了看起来可疑的交错数据,这让我很确定我只是没有正确读取数据。
因此,首先,我可以验证源文件是 44100、16 位、单声道 wav 文件。
我的缓冲区是这样分配的:
所有相关值均设置并用于:
作为测试,为了让我可以看到检索到的数据,我运行:
现在,我知道我的源文件到处都是峰值,但我看到的最大值只有 -128 和 128。由于这是一个 16 位文件,我希望这些值改为 -32768 到 32768。
此外,数据中似乎存在两种模式。以下是返回数据的示例:
现在看看从第二行开始的每隔一行:-13。看看它是如何增加的,不是均匀的,但至少是平滑的?奇数行没有那么平滑。
我的第一个想法是这是交错的立体声数据,但不,它只有一个通道,所以不应该有任何交错,对吧?
我最好的猜测是我只是错误地读取了数据,因此样本数据跨越了两个返回。知道如何正确阅读吗?
感谢您阅读整个问题,以及您可以提供的任何见解。
iphone - 使用音频队列流式传输音频。如何在播放结束前获取音频文件的长度?
已经完成了播放器的实现。我想实现进度条。但我想知道这是否可能,因为我们正在播放音乐。除非我们事先得到歌曲的长度。
拜托,我需要你的建议。
iphone - AudioQueueOfflineRender 返回空数据
我在使用 AudioQueueOfflineRender 解码 AAC 数据时遇到问题。
当我在调用后检查缓冲区时,它总是充满了空数据。我确保输入缓冲区有效并且提供了数据包描述。
我搜索并发现其他一些人也有同样的问题: http: //lists.apple.com/archives/Coreaudio-api/2008/Jul/msg00119.html
此外, inTimestamp 参数对我来说没有意义。为什么渲染器要关心音频中缓冲区的开头对应的位置?如果我传入 NULL,该函数会引发错误,所以无论如何我都会传入时间戳。
iphone - 构建更好的位置音频 [AudioQueue 操作]
我正在构建一个应用程序,该应用程序需要真正准确的位置音频,直至建模耳间时间差 (ITD) 水平,即立体声通道之间的轻微延迟差异随声音相对于听众的位置而变化。不幸的是,iPhone 的 OpenAL 实现没有这个功能,SDK 中也没有提供延迟音频单元。
经过一番阅读,我决定解决这个问题的最佳方法是通过操作 AudioQueue 来实现我自己的延迟(我还可以看到我未来的一些项目可能需要学习这些东西,所以这是学习的好借口)。但是,我根本没有任何低级音频编程的经验,当然也没有使用 AudioQueue。试图学习两者:
a) 音频处理的一般理论
和
b) AudioQueue 如何实现该理论的细节
事实证明,一次吸收太多了:(
所以,我的问题是:
1) 从哪里开始学习 DSP 以及音频生成和处理的一般工作原理(深入到音频数据在内存中的结构、混音如何工作,诸如此类)的好地方?
2) 什么是了解 AudioQueue 是如何做到这一点的好方法?有没有很好的例子来说明如何从生成的环形缓冲区中读取它,而不是AudioFileReadPackets
像 Apple 的 SpeakHere 示例那样按需获取文件的位?
而且,最重要的是
3)有没有我忽略的更简单的方法?
iphone - 如何降低 iphone 的 sdk Audioqueue 的声音?
我正在使用 Aran Mulhollan 的 RemoteIOPlayer,在 SDK iphone 中使用音频队列。我可以毫无问题: - 添加两个信号来混合声音 - 通过乘以我从 wav 文件中获得的 UInt32 来增加音量
但是其他所有操作都会给我带来扭曲和失真的声音,尤其是我无法分割信号。我似乎无法弄清楚我做错了什么,除法的实际结果似乎很好;声音/信号处理的某些方面显然必须躲避我:)
任何帮助表示赞赏!