Skip to content
li xianjing edited this page Sep 6, 2013 · 3 revisions

HTML5中的audio标签为音乐和音效提供了支持,“画app吧”对此做了一些封装,使用起来非常方便。

音乐(音乐播放器/听书/英语听力学习类)

1.向播放列表中增加音乐。用getMusicPlayer得到播放器,然后用clear清空列表中的内容,然后调用addSong向列表中增加音乐。

下面这段代码可以放到窗口的onOpen事件中。

var player = getMusicPlayer();

player.clear();
player.addSong("http://www.drawapp8.com/music/hmgq/0101.mp3", true);
player.addSong("http://www.drawapp8.com/music/hmgq/0102.mp3", true);
player.addSong("http://www.drawapp8.com/music/hmgq/0103.mp3", true);

2.向窗口中放入一个播放控件。

1

就这行简单!

Player Demo 在线编辑 在线运行

听书(荒漠甘泉) 在线编辑 在线运行

音效

使用音效与上面类似,只是音效根据需要播放,没有像播放器那样的界面。

1.初始化音效。每个音效有个名称和URL,播放时只要指定名称就行了。加载音效时可以使用音频文件,也可以通过频率/时长/音量来产生。

var player = getEffectsPlayer();
player.load("on", "/music/effects/on.mp3");
player.load("off", "/music/effects/off.mp3");
player.loadTone("test_tone", 800, 500, 0.8);

2.播放音效

getEffectsPlayer().play("on");

1

Effect Demo 在线编辑 在线运行

API

  • MusicPlayer.clear() 清除播放列表中的歌曲。

  • MusicPlayer.isPlaying() 是否处于播放状态。

  • MusicPlayer.isPaused() 是否处于暂停状态。

  • MusicPlayer.isStopped() 是否处于停止状态。

  • MusicPlayer.setEventListener(onNotify) 设置播放器事件监听器。

  • MusicPlayer.addSong(url, preload) 向播放列表中添加一首歌曲,preload表示是否要预先加载。

  • MusicPlayer.addSongs(urls, preload) 向播放列表中添加多首歌曲,preload表示是否要预先加载。

  • MusicPlayer.removeSongByUrl(url) 从播放列表中移除一首歌曲。

  • MusicPlayer.removeSongByIndex(index) 从播放列表中移除一首歌曲。

  • MusicPlayer.getSongsNr() 得到播放列表中的歌曲数目。

  • MusicPlayer.setCurrent(index) 设置第index首歌曲为当前歌曲。

  • MusicPlayer.getCurrent() 得到当前歌曲的索引。

  • MusicPlayer.setVolume(value) 设置音量, value取值0到1,0为静音,1为最大。

  • MusicPlayer.getVolume() 得到音量。

  • MusicPlayer.next(autoPlay) 切换到下一曲歌曲,autoPlay为true时切换后立即播放。

  • MusicPlayer.prev(autoPlay) 切换到前一曲歌曲,autoPlay为true时切换后立即播放

  • MusicPlayer.playOrPause() 当前在播放则暂停,当前为暂停则播放。

  • MusicPlayer.play() 播放。

  • MusicPlayer.stop() 停止。

  • MusicPlayer.pause() 暂停。

  • MusicPlayer.seekTo(percent) 定位到指定的位置,percent取值0-100,为进度的百分比。

  • MusicPlayer.getPercent() 得到当前歌曲播放的进度的百分比。

  • MusicPlayer.getEllapsedTime() 得到当前歌曲已播放的时间。

  • MusicPlayer.getDuration() 得到当前歌曲时间长度。

  • EffectsPlayer.load(name, url) 加载音效。

  • EffectsPlayer.loadTone(name, freq, duration, volume) 加载Tone音。

  • EffectsPlayer.play(name) 播放音效。

  • getMusicPlayer() 得到缺省的音乐播放器。

  • getEffectsPlayer() 得到缺省的音效播放器。