Example #1
0
  cue = function (position) {
    off()

    var waitingId = emitNewState('waiting', 50)

    audioEmitter
    .one('error.audio', error)
    .one('loadedmetadata.audio', play)
    .one('loadeddata.audio', function () {
      clearTimeout(waitingId)
      if (position) {
        // android player só recupera a duração depois do primeiro timeupdate
        if (audio.duration === 100 && audio.currentTime === 0) {
          audioEmitter.one('timeupdate.audio', function () {
            seek(position)
          })
        } else {
          seek(position)
        }
      }

      on()
    })

    audio.src = disc.currentTrack().url
    audio.load() // necessário para o IOS
    emitter.emit('cued', disc.currentTrack())
  }
Example #2
0
 var timeupdate = function () {
   var progress = audio.currentTime / audio.duration
   emitter.emit('progress', {
     progress: disc.currentProgress(progress),
     currentTime: helpers.secondsToTime(disc.currentTime(progress)),
     totalTime: helpers.secondsToTime(disc.totalTime())
   })
 }
Example #3
0
 var ended = function () {
   var next = disc.next()
   if (next) {
     cue()
   } else {
     rewind()
     emitter.emit('ended')
   }
 }
Example #4
0
 var rewind = function () {
   stopWatch()
   disc.release()
   emitter.emit('progress', {
     progress: 0,
     currentTime: 0
   })
   emitNewState('stop')
 }
Example #5
0
  var stop = function () {
    off()
    if (audio.readyState > 0) {
      pause()
      audio.currentTime = 0
    }

    audio.src = ''
    emitter.emit('stop')
  }
Example #6
0
 var error = function () {
   eject()
   emitter.emit('error', disc)
 }
Example #7
0
 emitter.on(event, function () {
   state = event
   emitter.emit('state', event)
 })
Example #8
0
 .on('waiting.audio loadstart.audio', function () {
   emitter.emit('waiting')
 })