Comparing version
@@ -1,1 +0,1 @@ | ||
'use strict';console.log('\n %c MetingJS 1.1.1 %c https://github.com/metowolf/MetingJS \n\n','color: #fadfa3; background: #030307; padding:5px 0;','background: #fadfa3; padding:5px 0;');var aplayers=[],loadMeting=function(){function a(a,b){var c={container:a,audio:b,mini:!1,autoplay:!1,mutex:!0,lrc:3,preload:'auto',theme:'#2980b9',loop:'all',order:'list',volume:0.7,listFolded:!1,listMaxHeight:'340px'};for(var d in c)c.hasOwnProperty(d)&&a.dataset.hasOwnProperty(d)&&(c[d]=a.dataset[d],('true'===c[d]||'false'===c[d])&&(c[d]='true'==c[d]));b.length&&(!0===c.mini&&(c.lrc=0,c.listFolded=!0),aplayers.push(new APlayer(c)))}var b='https://api.i-meto.com/meting/api?server=:server&type=:type&id=:id&r=:r';'undefined'!=typeof meting_api&&(b=meting_api);for(var f=0;f<aplayers.length;f++)try{aplayers[f].destroy()}catch(a){console.log(a)}aplayers=[];for(var c=document.querySelectorAll('.aplayer'),d=function(d){var e=c[d],f=e.dataset.id;if(f){var g=e.dataset.api||b;g=g.replace(':server',e.dataset.server),g=g.replace(':type',e.dataset.type),g=g.replace(':id',e.dataset.id),g=g.replace(':auth',e.dataset.auth),g=g.replace(':r',Math.random());var h=new XMLHttpRequest;h.onreadystatechange=function(){if(4===h.readyState&&(200<=h.status&&300>h.status||304===h.status)){var b=JSON.parse(h.responseText);a(e,b)}},h.open('get',g,!0),h.send(null)}else if(e.dataset.url){var i=[{name:e.dataset.name||e.dataset.title,artist:e.dataset.artist||e.dataset.author,url:e.dataset.url,cover:e.dataset.cover||e.dataset.pic,lrc:e.dataset.lrc}];a(e,i)}},e=0;e<c.length;e++)d(e)};document.addEventListener('DOMContentLoaded',loadMeting,!1); | ||
'use strict';console.log('\n %c MetingJS v1.2.0 %c https://github.com/metowolf/MetingJS \n','color: #fadfa3; background: #030307; padding:5px 0;','background: #fadfa3; padding:5px 0;');var aplayers=[],loadMeting=function(){function a(a,b){var c={container:a,audio:b,mini:null,fixed:null,autoplay:!1,mutex:!0,lrcType:3,listFolded:!1,preload:'auto',theme:'#2980b9',loop:'all',order:'list',volume:null,listMaxHeight:null,customAudioType:null,storageName:'metingjs'};if(b.length){b[0].lrc||(c.lrcType=0);var d={};for(var e in c){var f=e.toLowerCase();(a.dataset.hasOwnProperty(f)||a.dataset.hasOwnProperty(e)||null!==c[e])&&(d[e]=a.dataset[f]||a.dataset[e]||c[e],('true'===d[e]||'false'===d[e])&&(d[e]='true'==d[e]))}aplayers.push(new APlayer(d))}}var b='https://api.i-meto.com/meting/api?server=:server&type=:type&id=:id&r=:r';'undefined'!=typeof meting_api&&(b=meting_api);for(var f=0;f<aplayers.length;f++)try{aplayers[f].destroy()}catch(a){console.log(a)}aplayers=[];for(var c=document.querySelectorAll('.aplayer'),d=function(){var d=c[e],f=d.dataset.id;if(f){var g=d.dataset.api||b;g=g.replace(':server',d.dataset.server),g=g.replace(':type',d.dataset.type),g=g.replace(':id',d.dataset.id),g=g.replace(':auth',d.dataset.auth),g=g.replace(':r',Math.random());var h=new XMLHttpRequest;h.onreadystatechange=function(){if(4===h.readyState&&(200<=h.status&&300>h.status||304===h.status)){var b=JSON.parse(h.responseText);a(d,b)}},h.open('get',g,!0),h.send(null)}else if(d.dataset.url){var i=[{name:d.dataset.name||d.dataset.title||'Audio name',artist:d.dataset.artist||d.dataset.author||'Audio artist',url:d.dataset.url,cover:d.dataset.cover||d.dataset.pic,lrc:d.dataset.lrc,type:d.dataset.type||'auto'}];a(d,i)}},e=0;e<c.length;e++)d()};document.addEventListener('DOMContentLoaded',loadMeting,!1); |
{ | ||
"name": "meting", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"description": "Wow, such a beautiful html5 music player (with Meting API)", | ||
@@ -29,6 +29,6 @@ "main": "dist/Meting.min.js", | ||
"babel-cli": "^6.26.0", | ||
"babel-preset-env": "^1.6.1", | ||
"babel-preset-es2015": "^6.24.1", | ||
"babel-preset-minify": "^0.2.0" | ||
"babel-minify": "^0.4.3", | ||
"babel-preset-env": "^1.7.0", | ||
"babel-preset-minify": "^0.4.3" | ||
} | ||
} |
@@ -18,8 +18,9 @@ <p align="center"> | ||
|---|---|---| | ||
|1.0.x|Compatibility (2018.04.01 EOL)|[](https://github.com/MoePlayer/APlayer/tree/1.6.0)| | ||
|1.1.x|Latest|[](https://github.com/MoePlayer/APlayer)| | ||
|1.0.x|Deprecated|[](https://github.com/MoePlayer/APlayer/tree/1.6.0)| | ||
|1.1.x|Compatibility|[](https://github.com/MoePlayer/APlayer/tree/1.7.0)| | ||
|1.2.x|Latest|[](https://github.com/MoePlayer/APlayer)| | ||
## CDN | ||
- [jsDelivr](https://cdn.jsdelivr.net/npm/meting@1.1/dist/Meting.min.js) | ||
- [unpkg](https://unpkg.com/meting@1.1/dist/Meting.min.js) | ||
- https://cdn.jsdelivr.net/npm/meting@1.2/dist/Meting.min.js | ||
- https://unpkg.com/meting@1.2/dist/Meting.min.js | ||
@@ -29,4 +30,4 @@ ## Quick Start | ||
<!-- require APlayer --> | ||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.7/dist/APlayer.min.css"> | ||
<script src="https://cdn.jsdelivr.net/npm/aplayer@1.7/dist/APlayer.min.js"></script> | ||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10/dist/APlayer.min.css"> | ||
<script src="https://cdn.jsdelivr.net/npm/aplayer@1.10/dist/APlayer.min.js"></script> | ||
@@ -44,6 +45,2 @@ <div class="aplayer" | ||
```html | ||
<!-- require APlayer --> | ||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.7/dist/APlayer.min.css"> | ||
<script src="https://cdn.jsdelivr.net/npm/aplayer@1.7/dist/APlayer.min.js"></script> | ||
<div class="aplayer" | ||
@@ -55,7 +52,17 @@ data-name="rainymood" | ||
</div> | ||
<script src="dist/Meting.min.js"></script> | ||
``` | ||
for self-hosted media | ||
```html | ||
<div class="aplayer" | ||
data-name="广东珠江经济电台" | ||
data-artist="FM97.4" | ||
data-url="http://lhttp.qingting.fm/live/1259/64k.mp3" | ||
data-cover="http://pic.qingting.fm/2015/0209/20150209212831195.jpg!200" | ||
data-fixed="true"> | ||
</div> | ||
``` | ||
Fixed mode | ||
## Option | ||
@@ -68,2 +75,3 @@ | ||
|data-type |**require** |`song`, `playlist`, `album`, `search`, `artist`| | ||
|data-fixed |`false` |enable fixed mode| | ||
|data-mini |`false` |enable mini mode| | ||
@@ -77,5 +85,6 @@ |data-autoplay |`false` |audio autoplay| | ||
|data-mutex |`true` |prevent to play multiple player at the same time, pause other players when this player start play| | ||
|data-lrc |`false` |enable mini mode| | ||
|data-list-folded |`false` |indicate whether list should folded at first| | ||
|data-list-max-height |`340px` |list max height| | ||
|data-lrctype |`0` |lyric type| | ||
|data-listfolded |`false` |indicate whether list should folded at first| | ||
|data-listmaxheight |`340px` |list max height| | ||
|data-storagename |`metingjs` |localStorage key that store player setting| | ||
|~~data-mode~~ |**deprecated**|Instead `data-loop`, `data-order` should be used| | ||
@@ -85,4 +94,2 @@ | ||
> note: because of JavaScript rules, `data-listFolded` should be rewrite as `data-list-folded` | ||
## Advanced | ||
@@ -89,0 +96,0 @@ |
@@ -1,2 +0,2 @@ | ||
console.log(`\n %c MetingJS 1.1.1 %c https://github.com/metowolf/MetingJS \n\n`, `color: #fadfa3; background: #030307; padding:5px 0;`, `background: #fadfa3; padding:5px 0;`); | ||
console.log(`${'\n'} %c MetingJS v1.2.0 %c https://github.com/metowolf/MetingJS ${'\n'}`, 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;'); | ||
@@ -11,3 +11,3 @@ let aplayers = []; | ||
aplayers[i].destroy(); | ||
} catch(e){ | ||
} catch (e) { | ||
console.log(e); | ||
@@ -19,3 +19,4 @@ } | ||
let elements = document.querySelectorAll(".aplayer"); | ||
for (let i = 0; i < elements.length; i++) { | ||
for (var i = 0; i < elements.length; i++) { | ||
const el = elements[i]; | ||
@@ -45,8 +46,10 @@ let id = el.dataset.id; | ||
let data = [{ | ||
name: el.dataset.name || el.dataset.title, | ||
artist: el.dataset.artist || el.dataset.author, | ||
name: el.dataset.name || el.dataset.title || 'Audio name', | ||
artist: el.dataset.artist || el.dataset.author || 'Audio artist', | ||
url: el.dataset.url, | ||
cover: el.dataset.cover || el.dataset.pic, | ||
lrc: el.dataset.lrc | ||
lrc: el.dataset.lrc, | ||
type: el.dataset.type || 'auto' | ||
}]; | ||
build(el, data); | ||
@@ -57,9 +60,12 @@ } | ||
function build(element, music) { | ||
let options = { | ||
let defaultOption = { | ||
container: element, | ||
audio: music, | ||
mini: false, | ||
mini: null, | ||
fixed: null, | ||
autoplay: false, | ||
mutex: true, | ||
lrc: 3, | ||
lrcType: 3, | ||
listFolded: false, | ||
preload: 'auto', | ||
@@ -69,10 +75,21 @@ theme: '#2980b9', | ||
order: 'list', | ||
volume: 0.7, | ||
listFolded: false, | ||
listMaxHeight: '340px' | ||
volume: null, | ||
listMaxHeight: null, | ||
customAudioType: null, | ||
storageName: 'metingjs' | ||
}; | ||
for (const defaultKey in options) { | ||
if (options.hasOwnProperty(defaultKey) && element.dataset.hasOwnProperty(defaultKey)) { | ||
options[defaultKey] = element.dataset[defaultKey]; | ||
if (!music.length) { | ||
return; | ||
} | ||
if (!music[0].lrc) { | ||
defaultOption['lrcType'] = 0; | ||
} | ||
let options = {}; | ||
for (const defaultKey in defaultOption) { | ||
let eleKey = defaultKey.toLowerCase(); | ||
if (element.dataset.hasOwnProperty(eleKey) || element.dataset.hasOwnProperty(defaultKey) || defaultOption[defaultKey] !== null) { | ||
options[defaultKey] = element.dataset[eleKey] || element.dataset[defaultKey] || defaultOption[defaultKey]; | ||
if (options[defaultKey] === 'true' || options[defaultKey] === 'false') { | ||
@@ -84,11 +101,2 @@ options[defaultKey] = (options[defaultKey] == 'true'); | ||
if (!music.length) { | ||
return; | ||
} | ||
if (options.mini === true) { | ||
options.lrc = 0; | ||
options.listFolded = true; | ||
} | ||
aplayers.push(new APlayer(options)); | ||
@@ -95,0 +103,0 @@ } |
Sorry, the diff of this file is not supported yet
11740
6.4%93
5.68%105
7.14%