如何模拟在Android中播放一首钢琴音符?

时间:2012-01-29 08:03:38

标签: android midi

我将在android pad中模拟钢琴键盘。当使用按一个键时,我想播放一些声音,我知道JetPlayer可以播放midi文件,但在这种情况下,我没有mid文件,只有一个音符,怎么做?

2 个答案:

答案 0 :(得分:2)

MIDI和使用MP3是完全不同的东西。您可以将MIDI编程为听起来像钢琴,但您必须做很多工作才能获得良好的效果,您需要注意结果将取决于手机的声音硬件。 Android对MIDI的支持也很差,你需要很多代码来完成管道工作。我建议你坚持使用MP3。 100x20k的文件并不是那么大。您可以通过一些额外的压缩使它们更小。对于单音符这样的东西,你真的不需要高质量的音频。在16kbps,32kbps和64kpbs的手机上试一试。

如果使用MP3,您可能需要考虑使用SoundPool类。看一下教程here

这使您可以创建一个HashMap,其中包含每个声音的索引,然后您可以使用它来播放每个单独的音符。例如,索引可以是关键数字。要播放音符,您只需使用相关索引调用SoundPool的playSound方法。

我假设您的钢琴键数量有限,因此,加载多个声音文件(您的MP3)的开销是可以接受的。如果你有一个很大的数字,你可能需要考虑只为用户可见的密钥加载声音文件,以便控制你的内存使用。

答案 1 :(得分:0)

你无法在手机上专门“弹奏”钢琴。你必须有一个声音字节,用于特定音符。