class OpenTok::Streams
A class for working with OpenTok
streams. It includes methods for getting info about OpenTok
streams, for setting layout classes for streams, and for muting streams.
Public Class Methods
@private
# File lib/opentok/streams.rb, line 10 def initialize(client) @client = client end
Public Instance Methods
Use this method to get information on all OpenTok
streams in a session.
For example, you can call this method to get information about layout classes used by OpenTok
streams. The layout classes define how the stream is displayed in the layout of a live streaming broadcast or a composed archive. For more information, see {tokbox.com/developer/guides/broadcast/live-streaming/#assign-layout-classes-to-streams Assigning layout classes to streams in live streaming broadcasts} and {tokbox.com/developer/guides/archiving/layout-control.html Customizing the video layout for composed archives}.
@param [String] session_id The session ID of the OpenTok
session. @return [StreamList] The StreamList
of Stream
objects. @raise [ArgumentError] The stream_id or session_id is invalid. @raise [OpenTokAuthenticationError] You are not authorized to fetch the stream information. Check your authentication credentials. @raise [OpenTokError] An OpenTok
server error.
# File lib/opentok/streams.rb, line 49 def all(session_id) raise ArgumentError, 'session_id not provided' if session_id.to_s.empty? response_json = @client.info_stream(session_id, '') StreamList.new response_json end
Disables the active mute state of the session. After you call this method, new streams published to the session will no longer have audio muted.
After you call the force_mute_all
() method, any streams published after the call are published with audio muted. Call the disable_force_mute
() method to remove the mute state of a session, so that new published streams are not automatically muted.
@param [String] session_id The session ID.
# File lib/opentok/streams.rb, line 120 def disable_force_mute(session_id) opts = {'active' => 'false'} response = @client.force_mute_session(session_id, opts) end
Use this method to get information on an OpenTok
stream.
For example, you can call this method to get information about layout classes used by an OpenTok
stream. The layout classes define how the stream is displayed in the layout of a broadcast stream. For more information, see {tokbox.com/developer/guides/broadcast/live-streaming/#assign-layout-classes-to-streams Assigning layout classes to streams in live streaming broadcasts} and {tokbox.com/developer/guides/archiving/layout-control.html Customizing the video layout for composed archives}.
@param [String] session_id The session ID of the OpenTok
session. @param [String] stream_id The stream ID within the session. @return [Stream] The Stream
object. @raise [ArgumentError] stream_id or session_id is invalid. @raise [OpenTokAuthenticationError] You are not authorized to fetch the stream information. Check your authentication credentials. @raise [OpenTokError] An OpenTok
server error.
# File lib/opentok/streams.rb, line 28 def find(session_id, stream_id) raise ArgumentError, 'session_id not provided' if session_id.to_s.empty? raise ArgumentError, 'stream_id not provided' if session_id.to_s.empty? stream_json = @client.info_stream(session_id, stream_id) Stream.new stream_json end
Force a specific stream connected to an OpenTok
session to mute itself.
@param [String] session_id The session ID of the OpenTok
session. @param [String] stream_id The stream ID of the stream in the session.
# File lib/opentok/streams.rb, line 83 def force_mute(session_id, stream_id) response = @client.force_mute_stream(session_id, stream_id) end
Force all streams connected to an OpenTok
session (except for an optional list of streams), to mute published audio.
In addition to existing streams, any streams that are published after the call to this method are published with audio muted. You can remove the mute state of a session by calling the disable_force_mute
() method.
@param [String] session_id The session ID. @param [Hash] opts An optional hash defining options for the muting action. For example:
{ "excluded_streams" => [ "excludedStreamId1", "excludedStreamId2" ] }
@option opts [Array] :excluded_streams The stream IDs for streams that should not be muted. This is an optional property. If you omit this property, all streams in the session will be muted.
# File lib/opentok/streams.rb, line 105 def force_mute_all(session_id, opts = {}) opts['active'] = 'true' response = @client.force_mute_session(session_id, opts) end
Use this method to set the layout of a composed (archive or broadcast) OpenTok
stream.
For example, you can call this method to set the layout classes of an OpenTok
stream. The layout classes define how the stream is displayed in the layout of a live streaming broadcast or a composed archive. For more information, see {tokbox.com/developer/guides/broadcast/live-streaming/#assign-layout-classes-to-streams Assigning layout classes to streams in live streaming broadcasts} and {tokbox.com/developer/guides/archiving/layout-control.html Customizing the video layout for composed archives}.
@param [String] session_id The session ID of the OpenTok
session. @param [Hash] opts A hash with one key items
and value as array of objects having stream_id
and layoutClassList
properties. For more information, see Layout{tokbox.com/developer/rest/#change-stream-layout-classes-composed} @raise [ArgumentError] The session_id is invalid. @raise [OpenTokAuthenticationError] You are not authorized to fetch the stream information. Check your authentication credentials. @raise [OpenTokStreamLayoutError] The layout operation could not be performed due to incorrect layout values. @raise [OpenTokError] An OpenTok
server error.
# File lib/opentok/streams.rb, line 71 def layout(session_id, opts) raise ArgumentError, 'session_id not provided' if session_id.to_s.empty? raise ArgumentError, 'opts is empty' if opts.empty? response = @client.layout_streams(session_id, opts) (200..300).include? response.code end