Android 节奏大师游戏开发

制作一款音乐应用仿节奏大师,

1.选择 MIDI 音乐文件解析
2.选择 OpenGL 绘制界面

一、Android平台音乐媒体以及MIDI音乐现状

目前Android平台使用的音乐媒体格式多为MP3、OGG、WAV等常用格式,,常用铃声格式为MP3、WMA格式音频文件。WAV为源声音文件,无损,音质高,文件大。MP3、OGG等均为压缩音频,需要特定的编解码器支持。

这是Android支持的媒体格式列表链接:

http://developer.android.com/guide/appendix/media-formats.html

虽然MP3、OGG等常用音乐格式可以满足大部分应用和游戏开发,但如果程序中涉及大量的音频文件,使用这些格式后的程序包文件肯定是非常大的,比如涉及多种乐器的音乐程序和大型游戏。其实还有另外一种更加常用、更加强大的音乐媒体格式,那就是MIDI音乐。关于MIDI音乐相关介绍,请各位看官自行搜索。个人觉得百度百科解释的非常好,链接如下: http://baike.baidu.com/view/7969.htm

MIDI仅仅是一个通信标准,它是由电子乐器制造商们建立起来的,用以确定电脑音乐程序、合成器和其他电子音响的设备互相交换信息与控制信号的方法。MIDI系统实际就是一个作曲、配器、电子模拟的演奏系统。从一个MIDI设备转送到另一个MIDI设备上去的数据就是MIDI信息。

MIDI数据不是数字的音频波形,而是音乐代码或称电子乐谱。也就是说MIDI数据中没有声音数据,有的只是电子乐器的控制信息,需要借用电脑或者手机的声卡或者其他专业声卡来发声,音质肯定与声卡的质量相关。

MIDI音乐支持其实比MP3、OGG等更好,甚至Nokia仅能打电话和发短信不能播放MP3的低端机都支持MIDI,但像iPhone高端机却不支持。
Android平台对MIDI的支持情况其实也不好。具体请参考如下链接:

http://home.midishow.com/home.php?uid=5886&do=blog&id=15&mod=space

http://blog.umito.nl/index.php/2010/05/07/midi-on-android/

关于JetPlayer,平台下的Samples有个程序范例JetBoy。同时参考如下文章:

JetBoy游戏深入解析(中)--JetPlayer类解析:http://www.moandroid.com/?p=1333

二、MIDI文件格式分析

MIDI文件中不保存声音数据,只保存乐器和合成器等信息。

MIDI文件格式请参考下面几篇文章,在制作过程中肯定是要经常用到的。

MIDI音乐格式分析--理论篇:http://www.midifan.com/modulearticle-detailview-901.htm

MIDI音乐格式分析--实践篇:http://www.midifan.com/modulearticle-detailview-902.htm

MIDI音乐格式分析--附件篇:http://www.midifan.com/modulearticle-detailview-903.htm

或者可以参考MIDI的官方文档,会有详细介绍。

三、Android MIDI音乐播放与生成

从官方媒体格式列表中也可以看到Android的MediaPlayer支持MIDI文件的直接播放,具体播放过程与其他音乐文件无异,就不给出代码了。

但是有时候我们希望能对音频数据进行编辑合成,而MIDI音乐不保存音频数据,这时候就需要我们自己来写MIDI乐器与合成器的控制信息了,而且都是16进制数据。我们需要在程序中自己控制生成,当然你也可以自己用UltraEdit来编辑数据。

代码如下:https://github.com/IceNum/MidiDome

项目完整源码更新中。。。。。

你可能感兴趣的:(Android 节奏大师游戏开发)