2009-07-27 38 views
3

当用户触摸屏幕时,需要播放“喇叭”声音。在iPhone上播放无限期的声音

只要用户的手指与屏幕保持接触,喇叭声音就需要播放。

声音效果的结尾会有所不同。想象一下,随着气流的减少,号角会“结束”。

我必须将2个声音文件缝合在一起吗?我是否需要使用远程I/O,因为时间安排非常重要?

这个库看起来像一个可能性: http://www.surina.net/soundtouch/

好像我可以无限期地播放声音,但我还没有实现它,所以我不知道。

我觉得这将是游戏编程中的一个常见问题,但我在这方面的经验不多。

我从来没有在这个程度上使用过音频,所以我不知从哪里开始。 (直到现在,我只需要在我的应用程序中使用AVAudioPlayer)。

任何有关图书馆使用或使用技术的建议都会很棒。

回答

0

我没有iphone上的音频编程经验。我认为你可以创建一个很好的持续时间声音文件,其中包括最后的“最终声音”。你可以做的是,只要用户正在触摸屏幕,播放声音文件并在开始播放时立即回到开头,并有效地循环播放。如果用户停止触摸屏幕,则可以停止搜索开始并完成播放整个声音,并完成淡出效果(或者对于更直接的反应,请尝试开始淡出) 。

我不确定是否可以这样寻求,但这将是一种方法。对不起,如果我误解了你的问题。

5

为了使现实的,你需要三个声音:

  1. 攻击。这是声音的开始;它是声音中最重要的部分,因为它是大脑用来识别声音的部分。声音然后衰变轻微,并成为...

  2. 维持。这是声音的一部分,您需要不断循环直到用户举起手指。您必须仔细制作这部分声音以避免“嘀嗒”或其他工件在循环播放声音时。

  3. 版本这是您在用户举起手指时播放的声音。

有音频工具,如Audacity,这将使这三个文件的创建更容易。您可以使用实际的喇叭录音来创建三个声音片段。

+0

+1:这是解决此问题的正确方法。虽然你应该提到“衰减”(它不是完全必要的,但会产生更好的声音) – 2009-07-27 23:44:13

+0

声音的“Decay”部分应该包含在此应用程序的第一个声音文件中。 – 2009-07-28 00:29:53

0

用喇叭(WAV或MP3文件或其它)录制来实现这一点是一项相对困难的编程任务,特别是对于以前从未使用过音频的人来说。如果iPhone支持MIDI(或者有一个易于使用的MIDI组件,您可以将它加入到您的应用程序中),那么这将是一个更实用的途径。使用MIDI,您基本上会让合成器以特定音高开始音符(例如您正在按钢琴上的键),合成器将播放该音符,直到您告诉它停止播放为止(停止指令的一部分涉及告诉合成器如何逐渐“释放”音符)。 MIDI合成器都支持128种基本的乐器(不包括鼓),包括各种喇叭。