Class: OpenTok::Streams

Inherits:
Object
  • Object
show all
Defined in:
lib/opentok/streams.rb

Overview

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.

Instance Method Summary collapse

Instance Method Details

#all(session_id) ⇒ StreamList

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 Assigning layout classes to streams in live streaming broadcasts and Customizing the video layout for composed archives.

Parameters:

  • session_id (String)

    The session ID of the OpenTok session.

Returns:

  • (StreamList)

    The StreamList of Stream objects.

Raises:

  • (ArgumentError)

    The stream_id or session_id is invalid.

  • (OpenTokAuthenticationError)

    You are not authorized to fetch the stream information. Check your authentication credentials.

  • (OpenTokError)

    An OpenTok server error.



49
50
51
52
53
# 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

#disable_force_mute(session_id) ⇒ Object

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.

Parameters:

  • session_id (String)

    The session ID.



120
121
122
123
# 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

#find(session_id, stream_id) ⇒ Stream

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 Assigning layout classes to streams in live streaming broadcasts and Customizing the video layout for composed archives.

Parameters:

  • session_id (String)

    The session ID of the OpenTok session.

  • stream_id (String)

    The stream ID within the session.

Returns:

  • (Stream)

    The Stream object.

Raises:

  • (ArgumentError)

    stream_id or session_id is invalid.

  • (OpenTokAuthenticationError)

    You are not authorized to fetch the stream information. Check your authentication credentials.

  • (OpenTokError)

    An OpenTok server error.



28
29
30
31
32
33
# 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_mute(session_id, stream_id) ⇒ Object

Force a specific stream connected to an OpenTok session to mute itself.

Parameters:

  • session_id (String)

    The session ID of the OpenTok session.

  • stream_id (String)

    The stream ID of the stream in the session.



83
84
85
# 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_mute_all(session_id, opts = {}) ⇒ Object

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.

This is an optional property. If you omit this property, all streams in the session will be muted.

Parameters:

  • session_id (String)

    The session ID.

  • opts (Hash) (defaults to: {})

    An optional hash defining options for the muting action. For example:

    "excluded_streams" => [
      "excludedStreamId1",
      "excludedStreamId2"
    ]
    

Options Hash (opts):

  • :excluded_streams (Array)

    The stream IDs for streams that should not be muted.



105
106
107
108
# 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

#layout(session_id, opts) ⇒ Object

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 Assigning layout classes to streams in live streaming broadcasts and Customizing the video layout for composed archives.

For more information, see Layouthttps://tokbox.com/developer/rest/#change-stream-layout-classes-composed

Parameters:

  • session_id (String)

    The session ID of the OpenTok session.

  • opts (Hash)

    A hash with one key items and value as array of objects having stream_id and layoutClassList properties.

Raises:

  • (ArgumentError)

    The session_id is invalid.

  • (OpenTokAuthenticationError)

    You are not authorized to fetch the stream information. Check your authentication credentials.

  • (OpenTokStreamLayoutError)

    The layout operation could not be performed due to incorrect layout values.

  • (OpenTokError)

    An OpenTok server error.



71
72
73
74
75
76
# 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