Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

forever-chen/music

Repository files navigation

web音乐播放器解决方案

如何制作一个运行在浏览器中的本地音乐播放器? 本方案提供一种简单的可扩展思路.

获取本地音乐文件的数据信息

方案中采用开源 ffprobe 项目来得到多媒体文件的详细信息,包括歌曲的播放时长, id3 标签.

安装 ffprobe 访问 http://ffmpeg.org/

将所有希望本地播放的音乐文件放置在 musics/ 目录下 然后运行

 node use-node-generate-database.js

在本示例中会生成一个 database.js,

var database = [
 {
 "filename":"./database/1.mp3",
 "nb_streams":1,
 "nb_programs":0,
 "format_name":"mp3",
 "format_long_name":"MP2/3 (MPEG audio layer 2/3)",
 "start_time":"0.025057",
 "duration":"156.760816",
 "size":"2508914",
 "bit_rate":"128037",
 "probe_score":51,
 "tags":{
 "album":"Vivaldi : Le quattro stagioni [The Four Seasons] & Concertos",
 "artist":"Il Giardino Armonico"
 }
 },
 //....................
];

可以通过修改代码,把音乐数据保存到数据库或生成json文件等.

在web中制作音乐播放器

引入 dabase.js player.js;

 <script src="./scripts/.database.js"></script>
 <script src="./scripts/player.js"></script>

音乐播放器界面千变万化,所以player.js中没有对界面的操作.

player.js封装了一些常用的接口

// 构建函数必须接受的两个参数 
// 1. 页面中audio标签的标识 '.audio' '#audio'
// 2. 播放列表 
var player = new Player('#audio', database);
// 方法:
// 从头或上次离开时的歌曲开始播放列表中的音乐
player.play();
// 暂停当前歌曲播放
player.pause();
// 切换当前歌曲播放暂停状态
player.togglePlay();
// 静音
player.silence();
// 恢复静音之前的音量
player.restoreVolume();
// 静音/复原
player.toggleSilence();
// 设置音量
player.setVolume();
// 获取音量
player.getVolume();
// 根据播放模式播放列表中的上一首
player.next();
// 根据播放模式播放列表中的下一首
player.previous();
// 设置播放模式 顺序 随机 循环 单曲循环
player.setState();
//事件
原生audio事件的封装

其他使用详情参见示例;

About

音乐播放器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /