问题标签 [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.
ios - 使用 AVAudioEngine 构建循环音序器
我正在使用 iOS 8 中的新 AVAudioEngine 功能构建一个简单的鼓机,但在思考如何构建循环机制时遇到了麻烦。
似乎做到这一点的唯一方法是拥有一个旋转缓冲区,AVAudioPlayerNodes
并有一些工作可以在未来不断地安排缓冲区播放。这个对吗?
如果节点(及其缓冲区)只需要调度一次,那就太好了。然后节点可以全部reset
,然后play
每次播放头到达序列末尾时再次从头开始。
我已经通过创建一个空的样本缓冲区来尝试后者,将其安排在音序器的末尾,并附加到它的completionHandler
.,但它似乎不起作用。
ios - AVAudioEngine 音频文件时间管理
我正在尝试更改正在使用滑块播放的歌曲的播放时间。
我的问题是获得准确的 AVAudioTime 以根据滑块安排播放
代码(swift)如下所示:
滑块的最大值被分配了歌曲的长度,所以这不是问题。
这首歌从头开始播放
ExampleTime 在控制台的输出是:
我究竟做错了什么?
ios8 - AVAudioEngine 不正确的时间管理和 AVAudioPlayerNode 回调
我对 iOS8 中的新音频引擎有一个严重的问题。我有一个应用程序,它是用 AVAudioPlayer 构建的,我正试图找出一种迁移到新架构的方法,但是我遇到了以下问题(我相信你会同意,这是一个严重的基本障碍) :
我的头文件:
我的 m 文件(在 viewDidLoad 内):
上面的代码初始化引擎和一个节点,然后开始播放我正在使用的任何文件。首先打印出音乐文件的时长,播放完毕后,在回调函数中打印播放器的当前时间。这两个应该是相同的,或者在最坏的情况下,非常非常接近,但事实并非如此,这两个值之间的差异非常大,例如
难道我做错了什么?这应该很简单,我尝试过不同的文件格式、文件长度、数十个音乐文件,但差异总是在 1 秒左右或不到 1 秒。
ios - AVAudioEngine Input Mic Tap 影响 Music PlayerNode - SWIFT
我正在创建一个应用程序,让用户在播放音乐时对着麦克风说话(类似于卡拉 OK)。我已经设法使用 AudioEngine 来完成这项工作,其中多个输入进入混音器。但是,当启用麦克风时,音乐的音质也会丢失。听起来好像是通过麦克风播放音乐。我认为这是由于麦克风和音乐具有不同的 AVAudioFormats,但我找不到适用于麦克风的格式,除了:
我的音乐输出格式很简单
禁用麦克风时听起来很清楚。
值得注意的是,我也在使用 AvAudioSessionCategory:
关于我做错了什么,我已经没有想法了。任何帮助是极大的赞赏!
avaudiorecorder - AVAudioEngine 从外部麦克风录制音乐
我已经使用 AVAudioEngine 设置了一个简单的图表,以简单地获取默认输入节点的数据并将其放入耳机(音频监控) - 这应该只是让您的耳机复制它通过麦克风听到的任何内容,它会复制背景噪音被重定向到你的耳朵,但是,当运行这个应用程序时,有一个问题:它总是会接受内置麦克风的输入,即使外部麦克风插入 iPad。
AVAudioSession 告诉我,输入应该使用外部麦克风(通过 [[AVAudioSession sharedInstance] currentRoute]),如果我使用 AVAudioRecorder 录制音频,它确实使用该输入,但不是 AVAudioEngine,它坚持内置麦克风。难道我做错了什么?有没有我错过的设置?
ios8 - AVAudioPlayerNode.scheduleFile() 的 completionHandler 调用太早
我正在尝试在 iOS 8 中使用新的 AVAudioEngine。
看起来 player.scheduleFile() 的 completionHandler 是在声音文件完成播放之前调用的。
我正在使用一个长度为 5s 的声音文件——并且println()
-Message 在声音结束前大约 1 秒出现。
我做错了什么还是我误解了completionHandler的想法?
谢谢!
这是一些代码:
ios - 绘制麦克风输入的延迟
我正在使用 AVFoundation 来获取麦克风输入,并使用 EZAudio 来绘制麦克风输入。我已将代码精简为非常基本的代码,但仍然会出现延迟,这很奇怪。这是代码:
难道我做错了什么?
ios - 如何在 AudioEngine 的默认 inputNode 上安装 Tap 并写入文件
我正在尝试做一些非常简单的事情,但我只是在断断续续中取得了进展。我现在只想从麦克风获取音频数据到文件中。一旦我克服了这个障碍,我将对块中的数据进行更多处理。我已经厌倦了我在 AVAudioEngine 中发现的一些理念,我想知道我是否应该回到 AudioUnits,它可能调试得更好一些(虽然更复杂)。
首先,似乎在实例化 inputNode 之前无法启动 AudioEngine,然后您无法使用其 outputFormatForBus 获取其格式(采样率为零);你必须使用 inputFormatForBus。
现在我已经让它工作了,并且我正在使用似乎是有效数据的块进行调用,我无法在不生成异常的情况下写入文件,并出现错误:
'将缓冲区数据写入文件时出错,操作无法完成。(com.apple.coreaudio.avfaudio 错误 1768846202。)'
('insz') 这似乎表明我提供的格式或块获取的格式存在某种错误。
有什么想法吗?
谢谢你。
根据@matt 的评论更新了代码
ios - AVAudioEngine 寻找歌曲的时间
我正在播放一首歌曲AVAudioPlayerNode
,我正在尝试使用 a 来控制它的时间,UISlider
但我无法弄清楚如何使用AVAUdioEngine
.
swift - SWIFT - 是否可以从 AVAudioEngine 或 AudioPlayerNode 保存音频?如果是,如何?
我一直在寻找 Swift 文档以保存来自 AVAudioEngine 的音频输出,但我找不到任何有用的提示。
有什么建议吗?
解决方案 感谢马特的回答,我找到了解决方法。这是通过 AVAudioEngine 传递音频后如何保存音频的示例代码(我认为从技术上讲它是以前的)
希望这可以帮助 !
要解决的一个问题:
有时,您的 outputNode 比输入短:如果您将时间速率加快 2,您的音频将缩短 2 倍。这是我现在面临的问题,因为我保存文件的条件是(第 10 行)
这里有什么帮助吗?