require 'audite'

module Playa
  class Player
    attr_reader :track

    def self.play(track)
      new(track).start
    end

    def initialize(track = nil)
      @track = track
    end

    def start
      open

      play
    end

    def play
      player.start_stream
    end

    def stop
      player.stop_stream
    end

    def rewind
      player.rewind(5)
    end

    def forward
      player.forward(5)
    end

    def toggle
      player.toggle
    end

    def playing?
      player.active || false
    end

    def counter
      player.position
    end

    def level
      player.level
    end

    private

    def open
      player.load(track.filename)
    end

    def player
      @_player ||= Audite.new
    end
  end
end

require 'audite'

module Playa
  class Player
    def initialize(track, &block)
      @track = track
    end

    def load
      @_loaded ||= player.load(track.filename)
    end

    def play
      player.start_stream
    end

    def stop
      player.stop_stream
    end

    def rewind
      player.rewind(5)
    end

    def forward
      player.forward(5)
    end

    def pause
      player.toggle
    end
    alias_method :unpause, :pause

    def playing?
      player.active || false
    end

    def counter
      player.position
    end

    def level
      player.level
    end

    private

    attr_reader :track

    def audite_events
    end

    def player
      @_player ||= Audite.new
    end
  end
end

--- 
+++ 
@@ -2,12 +2,20 @@
 
 module Playa
   class Player
-    def initialize(track, &block)
+    attr_reader :track
+
+    def self.play(track)
+      new(track).start
+    end
+
+    def initialize(track = nil)
       @track = track
     end
 
-    def load
-      @_loaded ||= player.load(track.filename)
+    def start
+      open
+
+      play
     end
 
     def play
@@ -26,10 +34,9 @@
       player.forward(5)
     end
 
-    def pause
+    def toggle
       player.toggle
     end
-    alias_method :unpause, :pause
 
     def playing?
       player.active || false
@@ -45,9 +52,8 @@
 
     private
 
-    attr_reader :track
-
-    def audite_events
+    def open
+      player.load(track.filename)
     end
 
     def player
Update Player class with minor functionality changes.

- Minor updates to interface to facilitate use in Controller.
- Allow the track to be accessed outside of the class.
- Change #pause and #unpause to #toggle- we only should make one call to do this action.
- Remove unnecessary #audite_events.
