问题标签 [avaudioplayernode]

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 投票
5 回答
2167 浏览

ios - 在 iOS 中保存音频后效

我正在开发一个应用程序,以便人们可以通过应用程序记录和更改他们的声音并分享它。基本上我有很多事情,现在是时候请你帮忙了。这是我的播放功能,它播放录制的音频文件并在其上添加效果。

我想问题是我将TapOnBus安装到audioPlayerNode但受影响的音频在audioEngine.outputNode上。但是我尝试将TapOnBus安装到audioEngine.outputNode但它给了我错误。我也尝试将效果连接到audioEngine.mixerNode但它也不是解决方案。那么你有保存受影响的音频文件的经验吗?我怎样才能得到这个影响的音频?

任何帮助表示赞赏

谢谢

0 投票
1 回答
254 浏览

objective-c - 我正在尝试更改音频的音高,但无法保存受影响的音频。如何在后台保存受影响的音频?

此方法过滤音频并更改音高但未保存在任何位置

在这里我能够创建音频文件,但音频中没有声音可以任何人帮助我摆脱这个名为 outputfile 的新文件,但是当我播放该音频时,没有声音只是静音,创建了完整的音频但是无声

}

0 投票
0 回答
257 浏览

ios - iOS:如何在录制的视频上应用音频效果

我正在开发一个需要对录制的视频应用音频效果的应用程序。

我正在使用 GPUImage 库录制视频。我可以成功地完成它。现在,我需要应用花栗鼠、大猩猩、大房间等音频效果。

我查看了 Apple 的文档,它说 AudioEngine 不能在输入节点(作为麦克风)上应用 AVAudioUnitTimePitch。

为了解决这个问题,我使用以下机制。

  • 同时录制视频和音频。
  • 播放视频。在播放视频时,在音频文件上启动 AudioEngine 并在其上应用AVAudioUnitTimePitch

    [playerNode play]; // Start playing audio file with video preview

  • 合并视频和新影响的音频文件。

问题 :

  • 用户必须预览完整的视频以进行音频效果合并。这不是一个好的解决方案。如果我将playerNode 的音量设置为 0 (零)。然后它录制静音视频。

请提供任何更好的建议来做这件事。提前致谢。

0 投票
1 回答
1408 浏览

ios - AVAudioPlayerNode 不播放声音

我正在尝试使用下面的代码生成声音。一切都很好,没有错误。但是当我执行这段代码时,没有声音。我该如何解决这个问题?

顺便说一句,我正在使用这个例子:http ://www.tmroyal.com/playing-sounds-in-swift-audioengine.html

0 投票
1 回答
758 浏览

swift - Swift 3:在 AVAudioPlayerNode 上快速播放声音

我正在制作一款基本游戏,并尝试为它制作热门音效。在 Rhythmic Fistman 的帮助下,我已经让它们在不同的音高上演奏,但现在我遇到了一个新问题——如果我尝试快速演奏它们,它就会滞后。这似乎不是一个大问题,但在我正在开发的游戏中,每当你移动你的手指时,它就有可能发出敲击声,所以它很快就会变得迟钝,尤其是多点触控。

目前,我在 AVAudioEngine 中有两个用于两个通道的节点,因此我可以一次播放两个 hitsound,我正在使用它来停止其中一个节点,以便它可以播放新的声音:

这样做的问题是,无论声音是否实际播放,isPlaying 总是返回 true,因为它似乎只在你执行 playerNode.stop() 时返回 false,并且由于某种原因它非常滞后,实际上它不那么滞后一个接一个地播放大量的hitsounds。

我认为一个简单的解决方案不是重置节点,而是不播放hitsound,但由于isPlaying 总是返回true,所以我不能这样做。有没有更快的方法让音频节点播放声音?

0 投票
1 回答
1369 浏览

ios - Swift:如何在中断时停止调用 scheduleBuffer 完成处理程序?

我有一个 AVAudioPlayerNode ,我正在使用以下内容安排大量缓冲区:

但我有一点问题。如果我播放另一个缓冲区以中断当前正在播放的缓冲区,则仍在调用缓冲区被中断的完成处理程序。我想这是有道理的,但我似乎无法找到一种方法来检查文件是否真正完成播放或是否被中断。有没有办法我可以做到这一点?

任何答案都会有所帮助!

0 投票
0 回答
158 浏览

objective-c - 在特定的 NSTimeInterval 时间使用 AVAudioplayerNode 播放

如何使用 AVAudioPlayerNode 管理基于音频的 UISlider。我能够使用 NSTimer 显示播放时间但我无法使用 UISlider 快进和快退

someBody 可以用代码告诉我吗

0 投票
1 回答
206 浏览

objective-c - 改变 AudioPitch withOut 噪音的最佳方法是什么

我对语音转换器应用程序非常陌生。任何人都可以建议我改变音高的方法,比如女孩的声音。

这是我使用的代码。

在改变audioFile的音高后,我失去了清晰度并受到了更多的干扰。任何人都可以提出解决方案

0 投票
2 回答
675 浏览

ios - 每个循环的 iOS AVAudioPlayerNode 缓冲区完成处理程序

有没有办法在调度缓冲区时为每个循环都有一个完成处理程序?

0 投票
1 回答
1351 浏览

ios - AVAudioPlayerNode lastRenderTime

我使用多个AVAudioPlayerNode输入AVAudioEngine来混合音频文件以进行播放。一旦完成所有设置(引擎准备好、启动、音频文件段计划),我将play()在每个播放器节点上调用方法以开始播放。

因为遍历所有播放器节点需要时间,所以我对第一个节点的lastRenderTime值进行快照并使用它来计算节点play(at:)方法的开始时间,以保持节点之间的播放同步:

问题在于当前的播放时间。

我使用这个计算来获取值,seekTime如果我们寻找玩家,我会跟踪其中的值。它0.0在开始:

虽然这会产生一个相对正确的值,但我可以听到我演奏的时间和我听到的第一个声音之间的延迟。因为lastRenderTime一旦我调用立即开始前进play(at:),并且必须有某种处理/缓冲时间偏移。

明显的延迟在 100ms 左右,非常大,我需要一个精确的当前时间值来并行进行视觉渲染。

可能没关系,但每个音频文件都是 AAC 音频,我在播放器节点中安排它们的片段,我不直接使用缓冲区。段长度可能会有所不同。prepare(withFrameCount:)一旦我安排了音频数据,我也会调用每个播放器节点。

所以我的问题是,我观察到的延迟是缓冲问题吗?(例如,我的意思是我应该安排较短的片段),有没有办法精确计算这个值,以便我可以调整我当前的播放时间计算?

当我在 one 上安装一个 tap 块时AVAudioPlayerNode,该块被调用,缓冲区长度4410为 ,采样率为44100 Hz,这意味着 0.1s 的音频数据。我应该依靠它来计算延迟吗?

我想知道我是否可以相信我在点击块中获得的缓冲区的长度。或者,我正在尝试计算我的音频图的总延迟。有人可以提供有关如何精确确定此值的见解吗?