Advertisement
Guest User

Untitled

a guest
May 30th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.66 KB | None | 0 0
  1. $(document).ready(function() {
  2. var widget = SC.Widget(document.querySelector('iframe'));
  3. var newSoundUrl = 'http://api.soundcloud.com/tracks/257223245'; //newurl of the track which I would like to implement as a new query
  4.  
  5. var isMdown = false, // gets set to true when user clicks the handle
  6. isToggled = false, // gets set to true when user clicks the bar or handle
  7. progress = $('#progress'),
  8. percentage = null, // keeps track of the last %
  9. handleW = 8, // width of the handle, req. for positioning
  10. handle = document.getElementById('slider-handle'),
  11. range = document.getElementById('slider-range'),
  12. isRepeat = false,
  13. newVolume = 50;
  14.  
  15. widget.bind(SC.Widget.Events.READY, function() {
  16. console.log('Ready...');
  17. widget.bind(SC.Widget.Events.FINISH, function() {
  18. if (isRepeat) {
  19. widget.play();
  20. } else {
  21. widget.load(newSoundUrl, {
  22. auto_play: true
  23. });
  24. $('.button-play').removeClass('button-play-after');
  25. };
  26. });
  27. });
  28.  
  29. $('.button-play').click(function() {
  30. widget.toggle();
  31. $('.button-play').toggleClass("button-play-after");
  32. });
  33.  
  34. $('.button-repeat').click(function() {
  35. $('.button-repeat').toggleClass("button-repeat-after");
  36. if (isRepeat) {
  37. isRepeat = false;
  38. } else {
  39. isRepeat = true;
  40. }
  41. });
  42.  
  43. $('.button-volume-up').click(function() {
  44. newVolume = newVolume + 5;
  45. if (newVolume > 0 && newVolume < 100) {
  46. $('.button-volume-down').removeClass("button-volume-after");
  47. } else if (newVolume >= 100) {
  48. $('.button-volume-up').addClass("button-volume-after");
  49. } else {
  50. $('.button-volume-up').removeClass("button-volume-after");
  51. }
  52. widget.setVolume(newVolume);
  53. document.getElementById('volum').innerHTML = newVolume;
  54. });
  55.  
  56. $('.button-volume-down').click(function() {
  57. newVolume = newVolume - 5;
  58. if (newVolume < 100 && newVolume > 0) {
  59. $('.button-volume-up').removeClass("button-volume-after");
  60. } else if (newVolume <= 0) {
  61. $('.button-volume-down').addClass("button-volume-after");
  62. } else {
  63. $('.button-volume-down').removeClass("button-volume-after");
  64. }
  65. widget.setVolume(newVolume);
  66. document.getElementById('volum').innerHTML = newVolume;
  67. });
  68.  
  69. // main position adjustment function
  70. var setPos = function(e) {
  71. var posxBuffer = e.clientX - progress.offset().left,
  72. w = this.clientWidth;
  73. widget.getDuration(function(duration) {
  74. widget.seekTo(percentage * duration / 100);
  75. handle.style.left = percentage + '%';
  76. range.style.width = percentage + '%';
  77. });
  78. isToggled = false;
  79. isMdown = false;
  80. };
  81.  
  82. // we just need to update the % value here and set some flags
  83. progress.on('mousedown', function(e) {
  84. isToggled = true;
  85. var posxBuffer = e.clientX - progress.offset().left,
  86. w = this.clientWidth;
  87. percentage = ((posxBuffer - handleW) * 100) / w;
  88. if (e.target === handle)
  89. isMdown = true;
  90. });
  91.  
  92. progress.on('mouseover', function(e) {
  93. // if the user has previously triggered a mousedown event, he is now dragging
  94. // => adjust handle position, but not time progress
  95. if (isMdown) {
  96. var posxBuffer = e.clientX - progress.offset().left,
  97. w = this.clientWidth;
  98. percentage = ((posxBuffer - handleW) * 100) / w;
  99. handle.style.left = percentage + '%';
  100. range.style.width = percentage + '%';
  101. }
  102. });
  103.  
  104. // when a user has clicked the progress bar and releases the button,
  105. // set the position
  106. progress.on('mouseup', setPos);
  107.  
  108. // when a user is still dragging but leaves the progress bar,
  109. // release and set to last position
  110. progress.on('mouseleave', function(e) {
  111. if (isMdown)
  112. setPos(e);
  113. });
  114.  
  115. widget.bind(SC.Widget.Events.PLAY_PROGRESS, function() {
  116. widget.getPosition(function(position) {
  117. widget.getDuration(function(duration) {
  118. $('#seekms').text(duration);
  119. var mins = (position / 1000 / 60 < 10 ? '0' : '') + Math.floor(position / 1000 / 60),
  120. secs = (position / 1000 % 60 < 10 ? '0' : '') + Math.floor((position / 1000) % 60);
  121. $('#bufferms').text(mins + ':' + secs);
  122. if (isToggled || isMdown)
  123. return;
  124. var percentage = position * 100 / duration;
  125. $("#slider-range").css("width", percentage + '%');
  126. $("#slider-handle").css("left", percentage + '%');
  127. $('#inputseek').val(percentage);
  128. widget.getCurrentSound(function(music) {
  129. document.getElementById('name').innerHTML = music.user.username + " - " + music.title;
  130. });
  131. });
  132. });
  133. });
  134.  
  135. widget.bind(SC.Widget.Events.LOAD_PROGRESS, function(data) {
  136. if (data.loadProgress = 0) {
  137. $('#loadprogress').text("2");
  138. }
  139. });
  140. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement