XuDing的音符v1.3
这两天心情不好,写点代码调节调节,把首页更新了下。
前一段时间发现了个HTML5的jquery效果,发现它可以在非IE下播放声音,于是看了下HTML5的audio标签,觉得可以尝试一下,测试的时候还是可行的,但是重复播放音符的时候还是会出问题,不知道是不是现在的浏览器对HTML5支持不够好。。反正我的IE9不支持,于是就来了个判断,在IE下还使用object,非IE下用audio。所以目前的情况,只能先在IE下用用了。。
对代码做了大幅修改,现在看起来,还蛮有点复杂的,有时出点问题,看半天都看不出来。测试的时候,浏览器那是死个不停,有时候突然不出声了,找了好长时间,也没找出问题,结果浏览器关了,发现任务管理器里还有好多浏览器进程-_-!!,唉,都卡死这么多了。。连续播放这么多这么短的音符文件,浏览器比较有压力啊。。
现在还有个莫明奇妙的问题令我十分纠结,打开右侧闪烁的图标,打开键盘钢琴模式,输入乐谱,然后可以点输入框右下角的播放器按钮,要是在重播的时候点右边的图标退出键盘钢琴(再点一次播放器按钮可停止播放),这时候正常情况下应当是从头开始播放默认的歌曲(现在设的是《致爱丽斯》、《北京欢迎你》、《青花瓷》、《哆啦A梦》),现在也确实是这样子的,不过播放的速度着实快得发疯了,要是这时点两下左边的按钮暂停再播放,又正常了,真是莫名其妙。播放音符使用的是setTimeout的递归调用,音符与音符之间的间隔是全局变量控制的,是固定不变的,根本没有对它进行操作。同学说是不是有两个曲子在同时播放,我放慢了仔细听,确实是一个曲子,没有重复播放,为何会这么快呢?实在想不明白,情不自禁地怀疑是不是浏览器溢出了。还是先放一放吧,因为我正在设计个新的播放器,可以尽可能地缩短音符之间的间隔,提高音质。
接下来有些开发计划,除了打算新做个播放器,这个播放器留一个缓冲区,用于动态增加要播放的音符,然后定时清除播放结束的音符节点,有点复杂,具体实现方法还没有想到。。然后基于这个播放器,在乐谱music-data.xml里增加播放速度元素,这样可以播放不同节奏的音乐;顺便增加个播放速度调节功能,用来自定义音乐播放速度。调节速度非常容易,新做个播放器就比较复杂了,近期内肯定完成不了,以后再说吧。