问题标签 [audiotoolbox]

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 投票
3 回答
3762 浏览

ios - AirPlay 的音频输出路径

我已经查看但找不到访问音频输出路由的方法,因此我可以检测音频是否通过 AirPlay 输出。

这是我在 iOS 5.0 文档中找到的

讨论

这些字符串用作与 kAudioSession_AudioRouteKey_Outputs 数组关联的字典的 kAudioSession_AudioRouteKey_Type 键的值。

我找不到访问 kAudioSession_AudioRouteKey_Outputs 数组的方法。

谢谢

0 投票
1 回答
708 浏览

iphone - AudioToolBox doesn't play on some devices

I have two applications that use the audiotoolbox framework to play short mp3 files. The deployment target is: 4.0 And the Base SDK is: iOS 5.0 SDK

I have an iphone 4 with iOS 5.0 and an iPhone 3GS with iOS 5.0. Both of them are playing the sounds. A friend of mine that have iPad with iOS 4.3, can't play any of the sounds. And another friend with iPhone 4 with iOS 4.2 can't play the sounds as well. It looks like its something with the iOS but I don't really have any clue what is the real reason for it not to play.

Here is an example of my code for playing a file:

H. file (only relevant code):

#xA;

M. file (only relevant code):

#xA;
0 投票
1 回答
462 浏览

iphone - AudioToolbox 在应用程序启动时降低音量

在我的应用程序中,我使用 AudioToolbox 框架,以便可以使用 iSpeech SDK。如果正在播放音乐(在后台,来自 Apple 音乐应用程序),当应用程序启动时,音乐会跳过(完全停止播放)片刻(半秒),然后以减小的音量继续播放。我完全不确定为什么会这样,但谷歌对此无话可说。有没有人遇到过这样的问题?谢谢!

0 投票
1 回答
562 浏览

iphone - 检测耳机未插入 - Monotouch

有没有办法检测耳机是否在 Monotouch 中拔出?我正在寻找AudioSessionAddPropertyListener方法,但没有看到。这个方法移植了什么?

这是苹果的文档:http: //developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html#//apple_ref/doc/constant_group/Audio_Session_Interruption_States

如果有人想查看如何执行此操作的代码,您可以执行以下操作:

0 投票
2 回答
515 浏览

objective-c - iPad鼓机触摸->音频延迟

我们为 iPad 构建了一个鼓机应用程序,可以与现场音乐一起演奏(在舞台上或卧室里)。设置非常基本:您按下其中一个按钮,就会播放相应的样本。一切都很顺利,但不幸的是,在您放下手指的那一刻和声音的播放之间似乎有一个小的(尽管很烦人)延迟。我试图测量延迟量(通过耳朵),它似乎是 0.05 - 0.1 秒。

音频播放已使用 AudioToolbox 框架(扩展音频文件服务,音频单元)实现。声音从存储在设备上的文件中流式传输,以防止不同音库之间的加载时间。样本采用原始 wav 格式(线性 PCM,16 位小端有符号整数,2 个通道,44100 Hz),据我所知,这应该是处理速度最快的(与 mp3 等压缩格式相反)。

我测量了按下按钮(UIButton 触摸事件)和将样本的第一帧传送到混音器(通过播放回调)之间的时间。它相当稳定,在 0.02 到 0.03 秒之间。对我来说,这似乎很快,但可能还不够快。

这可能是问题所在,还是可能是其他诸如触摸事件传递延迟之类的问题?

更新:

正如 Till 所建议的,我已经重写了样本的加载。它们现在都预加载到内存中,因此磁盘 IO 不再是问题。最重要的是,我为回声效果做了相当多的 memcpy,我已经禁用了它,稍后将使用链接列表类型的解决方案来修复它。

虽然这减少了延迟,但按钮按下->播放仍然在 0.005 到 0.02 秒之间(但更常见的是 0.02)。这仍然很明显。我认为这可能是由于播放回调的缓冲区大小,目前为 1024 字节。

关于如何做到这一点的任何想法?设置 kAudioUnitProperty_MaximumFramesPerSlice 似乎不起作用。

0 投票
2 回答
442 浏览

iphone - 每毫秒使用 performSelectorOnMainThread 的问题

我想通过图形在 UIView 上显示实时声音的幅度。

我将声音采样率设置为 1000 秒。

而且,为了更新图表,我确实喜欢这样做。这是每毫秒调用一次。

updateGraph 内部是这样的。

但它有角度地绘制图形。

http://achievstar.tistory.com/234 (我是这个网站的新手,所以我无法上传图片)

(我猜)这是因为“waitUntilDone:NO”。

iphone 4S 和 iPad2 都赶不上 1000 的速度。

我还为“waitUntilDone”尝试了“YES”。画得对,

http://achievstar.tistory.com/234 (见下图)

而且,设备跟不上1000的速度,

所以这样,绘图速度很慢。

有没有办法更好地修复图表?

我真的在这里存货,我什至找不到好的解决方案了。

0 投票
1 回答
202 浏览

codec - 使用 Apple API 在音频文件中查找编解码器

有没有办法使用 Apple API(AudioToolbox 或 Quicktime)找到音频文件的编解码器/容器?

0 投票
2 回答
4047 浏览

iphone - ARC下的AudioServicesAddSystemSoundCompletion使用__bridge

我希望标题不要太误导...... :)

我播放系统声音并将 SoundCompletion-Callback 添加到其中,如下所示:

而 «self» 是一个简单的 NSObject

在完成回调中,我尝试再次调用播放例程:

我必须将 __bridge_transfer 和 __bridge_retained 添加到强制转换中,否则会出现错误、崩溃或其他意外行为。

但尽管如此,整件事还是行不通。

我将要播放的声音存储在 NSMutableArray 中,获取数组的第一个条目并播放它,添加声音完成并希望事情发生。但是 - 有了所有保留转移的东西, NSMutableArray 在第二次调用时是空的......

这是代码:

[编辑] - 回答我自己的问题:

总是很高兴自己找到它:)

原来,我快到了。

设置回调的调用如下:

然后,在回调函数中,我这样做:

它有效...

0 投票
1 回答
149 浏览

iphone - 与应用程序相关的设备的声音控制

在我的应用程序中,我有一些声音。为了使用这些声音,我使用了 AVFoundation、MediaPlayer、AudioToolbox 框架。应用程序在设备中运行良好。但我面临的问题是当我降低或增加我的设备音量时,应用程序声音不会受此影响。我想通过控制设备音量来控制我的应用程序声音的音量。谁能告诉我我该怎么做?请帮忙。提前致谢。

0 投票
1 回答
1091 浏览

cocoa - 使用 AVFoundation / CoreMedia / 其他框架来检测 Beats / Onsets

前言:这是我在 Stack Overflow 上的第一个与音频相关的问题,所以我会尽我所能说出这个问题。欢迎编辑。)

我正在创建一个允许用户循环播放音乐的应用程序。目前,我们的原型允许这些“循环标记”(实现为 UISlider)每秒捕捉,指定循环的开始和结束。显然,在循环音乐时,秒是一种非常粗略的处理方式,所以我想用节拍代替。

除了标记节拍让 UISlider 捕捉到之外,我不想做任何事情:

  • 为我们的loadMusic方法提供一个音频文件。
  • 通过库运行它以检测节拍或它们之间的间隔(也许)。
  • 将该值输入到滑块的setNumberOfTickMarks:方法中。
  • 利润!

不幸的是,我通过 Google 和 SO 遇到的大多数结果都产生了更高级的节拍检测库,例如混音器将使用的那些。就我而言,矫枉过正。

这是 CoreMedia、AVFoundation 或 AudioToolbox 可以处理的吗?如果没有,是否有其他库可以处理这个问题?我对 Apple 文档的研究只产生了相关的结果……对于 MIDI 文件。但苹果自己的软件也有类似的功能,比如iMovie 的 snap-to-beats 功能

在这一点上,任何指导、代码或摘要都会非常有帮助。

编辑:在做了更多的挖掘之后,我正在寻找的正确术语似乎是onset detection