1'use strict'; 2 3const EventEmitter = require('events'); 4 5module.exports = new class AudioPlayer extends EventEmitter { 6 constructor(){ 7 super(); 8 this._onState(); 9 } 10 11 play(source, callback) { 12 if (!source || !callback) { 13 throw new Error('invalid params'); 14 } 15 return __native.audioplayer.play(source, callback); 16 }; 17 18 pause() { 19 return __native.audioplayer.pause(); 20 }; 21 22 resume() { 23 return __native.audioplayer.resume(); 24 }; 25 26 stop() { 27 return __native.audioplayer.stop(); 28 }; 29 30 seekto(seconds) { 31 if (seconds < 0) { 32 throw new Error('invalid params'); 33 } 34 return __native.audioplayer.seekto(seconds); 35 }; 36 37 getPosition() { 38 return __native.audioplayer.getPosition(); 39 }; 40 41 getDuration() { 42 return __native.audioplayer.getDuration(); 43 }; 44 45 getState() { 46 return __native.audioplayer.getState(); 47 }; 48 49 _onState() { 50 __native.audioplayer.onState(function(state) { 51 this.emit('stateChange', state); 52 }.bind(this)); 53 }; 54 55 listPlay(sourcelist, callback) { 56 if (!sourcelist || !callback) { 57 throw new Error('invalid params'); 58 } 59 return __native.audioplayer.listPlay(sourcelist, callback); 60 }; 61 62 listPlayStop() { 63 return __native.audioplayer.listPlayStop(); 64 }; 65 66 setVolume(volume) { 67 if (volume < 0) { 68 throw new Error('invalid params'); 69 } 70 return __native.audioplayer.setVolume(volume); 71 }; 72 73 getVolume() { 74 return __native.audioplayer.getVolume(); 75 }; 76}