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

iphone - iPhone 上的音频硬件延迟

我目前正在开发一个播放音频文件(mp3,但可以更改为 WAV 以减少解码时间)并同时录制音频的应用程序。
出于同步目的,我想估计音频开始播放的确切时间。

使用 AudioQueue 控制每个缓冲区,我可以估计第一个缓冲区被耗尽的时间。我的问题是:

  1. AudioQueue 缓冲区被耗尽和实际播放之间的硬件延迟是多少?
  2. 是否有更低级别的 API(特别是 AudioUnit),具有更好的性能(在硬件延迟测量中)?
  3. 是否可以使用 AudioQueue 对硬件延迟设置上限,w 或 w/o 解码缓冲区?5ms 似乎是我可以使用的,更多的是需要不同的方法。

谢谢!

0 投票
0 回答
234 浏览

ios5 - kAudioSessionCategory_MediaPlayback

试图让设置属性 kAudioSessionProperty_OverrideCategoryMixWithOthers 与 AudioQueue 中的 MediaPlayback 类别一起使用。最终,我需要应用程序与其他音频混合并在后台模式下播放,这是 MediaPlayback 类别和 OverrideCategoryMixWithOthers 将完成的。但是,在设置 mixWithOthers 属性时,应用程序会崩溃。有什么建议么?

米克

0 投票
1 回答
256 浏览

macos - AudioQueue 缓冲区在回调中为空

我正在使用 AudioQueue 来读取 AudioBuffer,它间接地从 Mic 读取音频输入,但似乎 Callback 没有命中,

以下是简要的逻辑

1-- 运行音频线程

2 -- 创建音频队列

3 -- 配置音频队列,

4 -- 处理回调

5 -- 当用户想要停止音频流时,

6 -- 停止音频队列

7 -- 停止线程

如果需要,将为您提供代码。

0 投票
1 回答
1496 浏览

ios - 音频队列处理抽头到底是什么?

这些在 OS X 中已经存在了一段时间,最近才在 ios 中与 ios 6 一起使用。我试图弄清楚它们究竟让你做什么。所以这个想法是你可以进入音频队列并在发送数据之前处理数据。这是否意味着您现在可以截取来自不同应用程序的原始音频并在播放之前对其进行处理(例如 iOS 音乐播放器)?换句话说,应用间音频可能吗?我已经阅读了 audioQueue.h 文件,但不知道该怎么做。

0 投票
2 回答
2623 浏览

ios - 音频队列:AudioQueueStart 返回 -50

我正在尝试在 GLES 应用程序(Unity3d)中编写麦克风功率计模块。它在 UIKit 应用程序中运行良好。但是当我集成到我的unity3d项目中时,AudioQueue无法启动属性。调用AudioQueueStart的结果代码总是-50,但是-50是什么意思呢?我在 iOS 开发人员库中找不到参考。

我已经搜索过这个问题,并且知道有人在 cocos2d 应用程序中遇到了同样的问题。也许这有一些相关性。

这是我的启动音频队列代码:

0 投票
1 回答
1209 浏览

iphone - iPhone AudioStreamer AudioQueue 实时 FFT

我正在使用 Matt Gallagher 的 AudioStreamer 播放 mp3 音频流。现在我想在 iPhone 上使用 OpenGL ES 实时进行 FFT 并可视化频率。

我想知道在哪里捕获音频数据并将其传递给我的“Super-Fancy-FFT-Computing-3D-Visualization-Method”。Matt 正在使用 AudioQueue 框架,并且设置了一个回调函数:

回调看起来像这样:

在我从 AudioQueueBufferRef 传递数据的那一刻,结果看起来很奇怪。但是对于 FFT 和可视化,有很多地方可以搞砸,我想确保至少将正确的数据传递给 FFT。我以这种方式从缓冲区读取数据而忽略了每一秒的值,因为我只想分析一个通道:

然后使用包含 512 个值的 myBuffer 进行 FFT 计算。

0 投票
0 回答
156 浏览

ios - 为什么audiofilestream获取所有远程歌曲是vbr,即使歌曲是cbr

我写了一个小测试来播放远程歌曲,我确定我测试的歌曲是 cbr。我试图通过

vbr = ((AudioStreamPacketDescription *)inPacketDescriptions != nil);

但我总是得到 vbr == true 为什么?

任何人都可以教我如何获取歌曲的类型(cbr 或 vbr)?

0 投票
2 回答
1452 浏览

ios - 在 iphone4 中打电话后 AudioQueueStart 失败

我正在尝试从 ios6 和 iphone4 中使用 AudioQueue 的应用程序进行录制,我发现当我用手机完成的最后一件事是通话时,AudioQueueStart 失败并显示 (2003329396),并且无法启动输入队列了。

如果没有之前的电话,AudioQueueStart 多次运行良好。

这是以这种方式发生的:

这似乎不影响iphone4s。

在这种情况下,是否有任何正常的方法可以恢复将 AudioQueueStart 用于输入队列的能力?

谢谢,对不起我的格式...

0 投票
2 回答
1226 浏览

objective-c - XCode 4.5.1 AudioQueue 和链接器命令失败

我会尽可能地做到这一点。我会用我的音频队列录制声音。我有一个项目并添加了我的项目所需的所有框架(所以这不是问题)。我只更改了 2 个文件:

  • 视图控制器.h
  • 视图控制器.m

开始之前:我不确定文件类型(void)或(IBAction)(我无法测试)。

这是我的ViewController.h的源代码

这是我的ViewController.m的源代码

(我在功能 startPlayback 评论中有错误)

我不知道如何解决这个问题,我可以使用我的项目。如果我将功能 startPlayback 注释掉,我会收到此错误:

ld /Users/NAME/Library/Developer/Xcode/DerivedData/recorder_test2-gehymgoneospsldgfpxnbjdapebu/Build/Products/Debug-iphonesimulator/recorder_test2.app/recorder_test2 normal i386 cd /Users/NAME/Desktop/recorder_test2 setenv IPHONEOS_DEPLOYMENT_TARGET 6.0 setenv PATH "/Applications /Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/ sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhone模拟器6.0。sdk -L/Users/NAME/Library/Developer/Xcode/DerivedData/recorder_test2-gehymgoneospsldgfpxnbjdapebu/Build/Products/Debug-iphonesimulator -F/Users/NAME/Library/Developer/Xcode/DerivedData/recorder_test2-gehymgoneospsldgfpxnbjdapebu/Build/Products/ Debug-iphonesimulator -filelist /Users/NAME/Library/Developer/Xcode/DerivedData/recorder_test2-gehymgoneospsldgfpxnbjdapebu/Build/Intermediates/recorder_test2.build/Debug-iphonesimulator/recorder_test2.build/Objects-normal/i386/recorder_test2.LinkFileList -Xlinker - objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6。0 -framework AudioToolbox -framework AudioUnit -framework CoreAudio -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/NAME/Library/Developer/Xcode/DerivedData/recorder_test2-gehymgoneospsldgfpxnbjdapebu/Build/Products/Debug-iphonesimulator/recorder_test2.app/记录器_test2

ld:找不到框架 AudioUnit clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

请使用这两个源文件并自己测试并帮助我。

0 投票
1 回答
495 浏览

objective-c - 播放流后音频队列无法录制音频

我正在使用 Mat Gallager 的音频流媒体播放音频流。在程序的另一点(不同的控制器),我试图从设备的麦克风录制一些东西。

这是我的设置:

{ int i, bufferByteSize; UInt32 大小;

}

{ memset(&mRecordFormat, 0, sizeof(mRecordFormat));

}

}

看来,如果我先使用 AudioStreamer 类并稍后尝试录制某些内容,则甚至不会调用 Callback。但如果我不先使用 AudioStreamer,一切都很好。

谁能指出我正确的方向?