问题标签 [avaudioengine]

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 投票
2 回答
3530 浏览

ios - AVAudioEngine.start() 中的崩溃,即使它包含在 do/catch 中

我有以下代码(重新)开始AVAudioEngine连接到AVAudioEngineConfigurationChangeNotification

self.engine 定义为

但是,我经常通过 Crashlytics 收到崩溃报告说

致命异常:com.apple.coreaudio.avfaudio 错误 561015905

在包含try self.engine.start().

561015905 是AVAudioSessionErrorCodeCannotStartPlaying,据我了解,这应该是NSError错误代码,而不是异常,它应该被我catch在上面的代码中的空白捕获。尽管如此,该应用程序似乎在那一点上崩溃了。我错过了什么?

我知道在某些情况下,应用程序在后台唤醒时可能会发生此错误,我会对此感到满意,只要我能以某种方式捕捉到它的发生,就像我想的那样do/catch

0 投票
1 回答
1315 浏览

ios - 安装在音频引擎上的 Tap 只生成短文件

我正在开发一个应用程序,该应用程序允许用户录制音频,在更改音高的同时播放它,然后将他们所做的事情记录为单独的文件。

该代码似乎正在运行,但新文件的持续时间仅为 0.37 秒(原始 5 秒)。我猜当我从缓冲区写入时,它会一直保存自己,因此只剩下最后一段。如果这是我的问题,我如何附加文件而不是覆盖它?

更新了创建持续时间为 0.0 的文件的代码:

0 投票
0 回答
1075 浏览

ios - 如何从 NSData 创建 AVAudioPCMBuffer

我从流中接收 mp3 并转换 pcm 数据。我尝试使用 AVAudioEngine 但无法在没有文件的情况下创建 AVAudioPCMBuffer。

我该怎么做?

将 mp3 转换为 pcm

0 投票
2 回答
2082 浏览

swift - 是否可以录制来自 iPhone 的音频?

我正在开发一个允许用户创建一种配音的应用程序。有一个音频文件正在播放,用户可以在某些时刻点击以插入声音(有点像审查按钮。)我想​​知道如何去捕捉最终产品。

直接从 iPhone 捕获音频似乎是最简单的方法,因为用户在制作成品时已经听到了声音。但是,我找不到有关如何执行此操作的任何信息。如果不可能,有什么建议吗?

0 投票
0 回答
166 浏览

ios - 使用 AVAudioMix 在 SCRecorder 片段上应用淡入淡出效果

我正在尝试解决一个用于 iO 的令人敬畏的 SCRecorder 库的问题。问题是当我用相机录制一个片段时,我可以在每个视频片段的开头听到“砰”或“咔哒”的声音。

为了解决这个问题,我想在每个片段的开头对音频应用“淡入”效果,这样我就再也听不到这些“咔嗒声”了。

到目前为止,这是我的代码:

我没有错误,但它只是不会淡化音频。有人能帮我吗?

谢谢 :-) !

0 投票
2 回答
187 浏览

ios - 从 installTapOnBus 闭包中访问类属性

我有一个非常简单的installTapOnBus闭包,可以成功更新控制台,但不能更新 UI 元素。这是代码:

也许我需要发送self对闭包的弱引用,但不确定语法。任何关于如何更新 UI 元素的反馈/想法都会很棒!谢谢阅读。

0 投票
0 回答
448 浏览

macos - 使用 AVAudioEngine 进行视频播放

我是 Swift 和 OSX 的新手,如果这是一个愚蠢的问题,我深表歉意。我正在尝试创建一个视频播放器,允许用户在播放视频时使用滑块对视频的音轨进行音高转换(即改变音频频率)。

我已经想出了如何使用 AVAudioEngine 对音频执行此操作(基于本教程https://www.robotlovesyou.com/mixing-between-effects-with-avfoundation/)并且我还想出了如何播放视频.

但是,我坚持将 AvAudioEngine 应用于视频轨道的音频(我正在尝试 .mp4,但我希望它可以以任何格式工作)。

有没有办法做到这一点?或者,如果没有,是否有另一种方法可以实现我实时(在播放视频时)改变音频音轨的真正目标?

非常感谢

0 投票
1 回答
1658 浏览

ios - 来自内存的 AVAudioFile?

我正在玩 AVAudioFile 和 AVAudioPlayerNode。

我已经实现了一个自定义流协议,它接收音频块并处理所有缓冲部分,但是我无法在不使用文件系统的情况下播放第一个块(我现在不想使用 FS)。

这是:当我将数据写入临时文件并使用加载它时它工作正常AVAudioFile(然后我初始化 aAVAudioBuffer并使用AVAudioFile.readIntoBuffer& finally AVAudioPlayerNode.scheduleBuffer)。但我无法直接从第一个块(NSData)加载缓冲区。

我应该实现自定义 NSURLProtocol 并尝试从自定义 NSURL 初始化 AVAudioFile 吗?

0 投票
0 回答
237 浏览

objective-c - os x 的 kAppleSoftwareAudioCodecManufacturer 模拟

所以我尝试使用这种方法保存我的音频。但我在 os x 上需要它。在这种方法中,男性使用:

只有当我使用 IPHONE 时它才有效。所以我尝试在 OS X 上找到类似的东西。我有这段代码,但它不起作用:

那么有什么问题呢?

0 投票
0 回答
1485 浏览

ios - 将单声道 AVAudioPCMBuffer 写入立体声 AVAudioFile

我正在使用 AVAudioEngine 录制音频,并将其保存为声音文件。

用户可以选择导入音频文件,然后如果愿意,他们可以在此文件的末尾继续录制。我通过将导入的文件读取到 AVAudioPCMBuffer 中来获取音频数据,然后将其写入我正在录制的文件中。如果导入的文件是立体声的(因为我正在写入的文件也是立体声的),这非常有用。但是如果导入的文件是单声道的,当我尝试将 AVAudioPCMBuffer 写入文件时,代码会崩溃,这仅仅是因为通道数不匹配。

是否可以将处理格式设置为立体声的单声道 AVAudioPCMBuffer 读入 av AVAudioFile?我可以将缓冲区转换为立体声吗?

这是我如何从导入的文件中获取音频缓冲区的示例:

这就是我使用 AVAudioEngine 创建要写入的 AVAudioFile 的地方:

最后,这就是我将音频缓冲区写入文件的方式:

如果我将音频转换为立体声,一切正常。