我非常喜欢iPhone上的音乐应用程序,例如Smule的Ocarnia,我一直想为Android创建音乐应用程序。是否有某种API /框架可用于创建软件乐器/创建“样式”声音? 谢谢!
*的 修改 * 我找到了一个名为“JFugue”的Java音乐编程API,但它不能在Android中构建,因为它缺乏Java MIDI支持......是否有类似“JFugue”的东西?
答案 0 :(得分:1)
我对这些应用程序一无所知。
但是有一些不同的方法可以在Android上实现音乐类型应用程序。
MediaPlayback< ---将概述如何使用MediaPlayer对象加载和播放您自己的声音文件。
MediaPlayer< ---更深入地了解MediaPlayer对象的工作原理。
SoundPool< --- MediaPlayer的替代品。 SoundPool设计用于保存多个声音,并且能够在多个流中播放它们。另一方面,MediaPlayer一次只能加载一个媒体。
和ToneGenerator但我现在必须走了。你必须自己去搜索那个,抱歉。
答案 1 :(得分:1)
您可能会采取几种方法
您可以将工具样本包含为应用资源,并使用MediaPlayer / SoundPool进行播放。有关详细信息,请参阅media player topic
您还可以采用更加程序化的方法,自动动态生成实际的音频样本,然后使用AudioTrack进行播放。
Android通过JetPlayer课程确实提供有限的midi支持。但它不支持动态生成midi事件,它只能播放预先存在的midi文件。
答案 2 :(得分:1)
Android上有API可用于制作软件乐器,其他答案涵盖其中一些。
但是存在一个更大的问题,即可笑的高延迟(即从发出软件命令到声音从扬声器发出的时间延迟)。在大多数Android硬件上,它就像400毫秒一样,即使是一个“玩具”乐器也是不可接受的(这种音乐几乎是四分之一音符!)
搜索“安卓音频延迟”,你会看到成千上万的评论来自生气的开发者,但没有真正的解决方案。谷歌肯定知道这个问题,但没有人知道他们什么时候会修复它。在他们这样做之前,Android对音乐制作软件基本没用。