Class: AlexaRuby::AudioPlayer
- Inherits:
-
Object
- Object
- AlexaRuby::AudioPlayer
- Defined in:
- lib/alexa_ruby/response/audio_player.rb
Overview
AudioPlayer class encapsulates all Alexa audio player directives
Instance Attribute Summary collapse
-
#directive ⇒ Object
Returns the value of attribute directive.
Instance Method Summary collapse
-
#build_play_directive(opts) ⇒ Hash
Build an AudioPlayer.Play directive.
-
#build_stop_directive ⇒ Hash
Build AudioPlayer.Stop directive.
-
#initialize ⇒ AudioPlayer
constructor
Initialize new directive object.
Constructor Details
#initialize ⇒ AudioPlayer
Initialize new directive object
10 11 12 |
# File 'lib/alexa_ruby/response/audio_player.rb', line 10 def initialize @directive = {} end |
Instance Attribute Details
#directive ⇒ Object
Returns the value of attribute directive.
7 8 9 |
# File 'lib/alexa_ruby/response/audio_player.rb', line 7 def directive @directive end |
Instance Method Details
#build_play_directive(opts) ⇒ Hash
Build an AudioPlayer.Play directive
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/alexa_ruby/response/audio_player.rb', line 22 def build_play_directive(opts) raise ArgumentError, 'Invalid streaming URL' unless valid_url?(opts[:url]) token = opts[:token] || SecureRandom.uuid offset = opts[:offset] || 0 @directive[:type] = 'AudioPlayer.Play' @directive[:playBehavior] = 'REPLACE_ALL' @directive[:audioItem] = { stream: {} } @directive[:audioItem][:stream][:url] = opts[:url] @directive[:audioItem][:stream][:token] = token @directive[:audioItem][:stream][:offsetInMilliseconds] = offset end |
#build_stop_directive ⇒ Hash
Build AudioPlayer.Stop directive
37 38 39 |
# File 'lib/alexa_ruby/response/audio_player.rb', line 37 def build_stop_directive @directive[:type] = 'AudioPlayer.Stop' end |