class MediaPlayer::Player
Attributes
is_playing[R]
paused[R]
playlist[R]
process_manager[R]
Public Class Methods
new(args = {})
click to toggle source
# File lib/player.rb, line 11 def initialize(args = {}) @process_manager = args.fetch(:process_manager) @playlist = args.fetch(:playlist) @is_playing = false @paused = false end
Public Instance Methods
add_media(media_file)
click to toggle source
# File lib/player.rb, line 18 def add_media(media_file) @playlist.add(media_file) end
next()
click to toggle source
# File lib/player.rb, line 45 def next @process_manager.stop @process_manager.execute(next_media) end
observe()
click to toggle source
# File lib/player.rb, line 55 def observe Thread.new do while @is_playing self.next unless @process_manager.is_current_process_alive? sleep 2 end end end
pause()
click to toggle source
# File lib/player.rb, line 39 def pause @is_playing = false @paused = true @process_manager.pause end
play()
click to toggle source
# File lib/player.rb, line 22 def play return if @is_playing if @paused @paused = false @process_manager.resume else @is_playing = true @process_manager.execute(current_media) end observe end
previous()
click to toggle source
# File lib/player.rb, line 50 def previous @process_manager.stop @process_manager.execute(previous_media) end
stop()
click to toggle source
# File lib/player.rb, line 34 def stop @is_playing = false @process_manager.stop end