CSDN博客

img clapton

[原]Nokia 40系列播放midi指南 V0.0.1

发表于2004/7/16 14:29:00  1267人阅读


[a cross post from clapton.blogone.net]
clapton_xpAThotmailDOTcom

读者对象:想在Nokia40手机上播放稍微长一点时间声音的人们,高手请先看最下面的

“我的疑问”。

首先~N记?

40系列手机不支持播放midi(那你还说个P啊~我闪),但是可以通过将midi转换为co

m.nokia.mid.sound.Sound类可以识别的数组来进行播放,播放出来的为单个的鸣音,

我称之为“通!”(TONE)。

转换工具:一般就用Nokia?Developer's?Suite?2.1?for?j2me(TM)里的Audio?

Convertor即可,但是实践中发现转换时有缺音的现象,至今不知何故。

转换要求:源Midi文件必须是单轨(Track)单声道(Channel)的,这样在Audio?

Convertor里才能取得一个整个的Channel并转换(因为要是两个以上Channel,你选哪

个?哪个都不是全的)。

这时又有问题了~一首midi好几分钟,转换的时候说太长,或者转的时候没说太长,

但放到手机上播了一半儿就停了。这个问题似乎是Sound类对播放的数组有长度限制,

具体是多少我也没仔细试过。


“那这么多问题怎么解决啊~”

那位同学捧哏捧的恰到好处,有火候~
1。对源midi的处理:最好是自己做啦,要把现有的N个轨的midi都弄到一个Channel里

似乎是mission?impossible哦(反正我没琢磨出来),做好后,把它按每几个小节分

成一段并分别保存。
2。对每一段midi用audio?convertor进行转换,并保存结果
3。在播放的程序里,可以在每一段播放完之后马上开始播放下面一段。具体实现请看

Nokia的JavaDoc。这里有一点需要注意的,如果以Sound的状态来判断何时开始下一段

的播放,在模拟器上没什么大问题,但是放到手机上就会有很明显的延时,解决的办

法可以是在模拟器上播放,记录每一个小段落的开始时间(ms),并写一个线程来判

断何时开始下一段播放。
4。刚才说的丢音的现象呢?
偶然发现有一个东东http://www.ringtonecreator.info/files/rtcreator.zip,可以

转换很多厂商的铃声,包括nokia的,但是这个东东要$$$,这个试用版只能转换10秒

的midi,多余的被砍掉,而且人家说明了不让用于商业用途哦(狠……那就自己玩玩

吧)。经过试验,这个东东转出来的播放时没有丢音的现象。



我的疑问:
~~~~~~~
1?真的要切开才能播超过一分钟的文件吗?
2?丢音的现象是源midi的问题还是转换工具的问题?
3?如果真的要切的话,有没有方便的按小节或者按秒来切分midi的工具(要求按几下

键盘,点几下鼠标就行的)
4?合并多轨midi至一个channel到底是不是mission?impossible?



工具:
Cakewalk?Sonar:
http://www.cakewalk.com
Nokia?Developer's?Suite?2.1?for?j2me(TM):
http://forum.nokia.com
RingToneConvertor:
http://www.ringtonecreator.info



资源:
http://www.matrix.org.cn/article/7.html
http://www.midifan.com
http://www.forum.nokia.com


鸣谢:
在我郁闷的时候请教过的各位朋友们,我也不知道是否可以公布你们的名字,所以就

笼统的感谢一下吧,呱唧呱唧呱唧~~


有不对的或者多此一举的地方希望大家能够指出,学徒在此鞠躬~呱唧呱唧呱唧呱唧
clapton_xpAThotmailDOTcom
0 0

相关博文

我的热门文章

img
取 消
img