auroraplayer.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. UNKNOWN_ART = '/dgplayer/resources/fallback_album_art.png';
  2. function DGAuroraPlayer(player, DGPlayer) {
  3. this.player = player;
  4. this.ui = DGPlayer;
  5. DGPlayer.seekTime = 0;
  6. DGPlayer.duration = 0;
  7. DGPlayer.bufferProgress = 0;
  8. var onplay, onpause, onvolume, onformat, onbuffer, onprogress, onduration, onmetadata;
  9. DGPlayer.on('play', onplay = function() {
  10. player.play();
  11. DGPlayer.state = 'playing';
  12. });
  13. DGPlayer.on('pause', onpause = function() {
  14. player.pause();
  15. DGPlayer.state = 'paused';
  16. });
  17. DGPlayer.on('volume', onvolume = function(value) {
  18. player.volume = value;
  19. });
  20. player.on('buffer', onbuffer = function(percent) {
  21. DGPlayer.bufferProgress = percent;
  22. });
  23. player.on('progress', onprogress = function(time) {
  24. DGPlayer.seekTime = time;
  25. });
  26. player.on('duration', onduration = function(duration) {
  27. DGPlayer.duration = duration;
  28. });
  29. player.on('metadata', onmetadata = function(data) {
  30. DGPlayer.songTitle = data.title;
  31. DGPlayer.songArtist = data.artist;
  32. if (data.coverArt) {
  33. DGPlayer.coverArt = data.coverArt.toBlobURL();
  34. } else {
  35. DGPlayer.coverArt = UNKNOWN_ART;
  36. }
  37. });
  38. var originalDescription = DGPlayer.fileDescription;
  39. player.on('error', onerror = function(e) {
  40. // reset state
  41. DGPlayer.state = 'paused';
  42. DGPlayer.duration = 0;
  43. DGPlayer.bufferProgress = 0;
  44. DGPlayer.seekTime = 0;
  45. DGPlayer.coverArt = UNKNOWN_ART;
  46. DGPlayer.songTitle = 'Unknown Title';
  47. DGPlayer.songArtist = 'Unknown Artist';
  48. DGPlayer.fileDescription = "Hmm. I don't recognize that format. Try another.";
  49. setTimeout(function() {
  50. DGPlayer.fileDescription = originalDescription;
  51. }, 3000);
  52. });
  53. player.volume = DGPlayer.volume;
  54. player.play();
  55. DGPlayer.state = 'playing';
  56. this.disconnect = function() {
  57. if (player) player.stop();
  58. DGPlayer.off('play', onplay);
  59. DGPlayer.off('pause', onpause);
  60. DGPlayer.off('volume', onvolume);
  61. player.off('buffer', onbuffer);
  62. player.off('format', onformat);
  63. player.off('progress', onprogress);
  64. player.off('duration', onduration);
  65. player.off('metadata', onmetadata);
  66. }
  67. }