- This file declares a class,
Player
, instantiates it, and assigns it to a globalplayer
variable. - The
Player
class contains four methods:constructor()
playPause()
skipTo()
setVolume()
- The
constructor()
method sets initial values for thecurrentlyPlaying
,playState
,volume
, andsoundObject
properties.currentlyPlaying
is set to the first item inalbum.songs
.- The initial
playState
is"stopped"
. - The
volume
is set to the number80
. - The
soundObject
instantiates a newbuzz.sound
object using thesoundFileUrl
property ofthis.currentlyPlaying
. Thebuzz
variable doesn't appear to be initialized here, so presumably it's a dependency loaded elsewhere.
- The
playPause()
method accepts one parameter,song
. It sets it tothis.currentlyPlaying
by default. It checks to see ifthis.currentlyPlaying
is different fromsong
, and if so, it:- Stops the
soundObject
property. - Removes the
"playing"
and"paused"
classes from theelement
property ofthis.currentlyPlaying
. - Sets
this.currentlyPlaying
to the function's parameter,song
. - Changes the
playState
property to"stopped"
. - Instantiates a new sound object using
this.currentlyPlaying
, which was just updated tosong
.
- Stops the
- The
skipTo()
method accepts one parameter,percent
, and checks the value ofthis.playState
.- If
this.playState
is set to "playing", skipTo passespercent
% of the song's total duration (i.e.,soundObject.getDuration()
) to thesoundObject.setTime()
method so the song can skip forward or back to the appropriate time. - If
this.playState
is not set to "playing", skipTo does nothing.
- If
- The
setVolume()
method accepts one parameter,percent
, which it uses to change state in 2 places:- Sets this.volume to
percent
. - Sets this.soundObject.volume to
percent
.
- Sets this.volume to
-
-
Save nydame/91cff5da09979a80929eb418407c26e2 to your computer and use it in GitHub Desktop.
player.js analysis
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment