如何播放声音以创建弹奏效果?

Posted

技术标签:

【中文标题】如何播放声音以创建弹奏效果?【英文标题】:How do I play sounds to create a strumming effect? 【发布时间】:2011-11-24 13:00:28 【问题描述】:

我想实现一把简单的吉他。如您所知,吉他有六根琴弦,当您拨动其中一根琴弦时,就会播放相应的声音。为了解决这个问题,我在viewDidLoad中初始化了六个avaudioplayers,并使用了一个mp3文件。在touchesMoved 中,我检查了哪个字符串被触摸,然后播放相应的声音。但是当我将手指从二弦快速移动到六弦时,效果就不那么好了。仅播放第一个第一个声音(即第二个字符串)。任何人都可以分享任何想法吗?

【问题讨论】:

【参考方案1】: 1 - 不要使用 MP3 压缩声音,而是使用普通 PCM。

ios 在硬件加速播放中仅同时处理一种 MP4/MP3 声音 - 额外的一种将使用软件解码器播放。

2 - 使用 OpenAL 播放声音。

OpenAL 易于使用、有据可查,并且可以同时处理 32 种声音并在 iOS 上处理 (AFAIK),没有更大的缺点。

【讨论】:

很高兴我能帮上忙。如果此答案解决了您的问题,请选择其左侧的灰色复选标记并点击向上箭头。谢谢,编码愉快!

以上是关于如何播放声音以创建弹奏效果?的主要内容,如果未能解决你的问题,请参考以下文章

比较简单的声音 - 最接近的频率是多少

如何在 Java 中按频率生成声音?

如何将事件监听器添加到tone.js中正在播放的音符中

触发 AVAudioPlayer 以停止所有声音并播放选定的声音,除非单击播放(选定)按钮

如何以绝对最小或*量化*延迟播放声音?

无延迟播放声音 iOS