【问题标题】:How to enable recording in Twilio Video conference?如何在 Twilio 视频会议中启用录制?
【发布时间】:2018-11-13 16:19:24
【问题描述】:

我在启用 'RecordParticipantsOnConnect' 时遇到问题,如下所述:https://www.twilio.com/docs/video/api/recordings-resource 在我的 twilio 实现中,但我似乎无法让它工作,我在哪里将 RecordParticipantsOnConnect 设置为 true?

他们说你在创建房间时需要传递这个选项,但我没有创建任何房间,它是自动完成的,我只是将房间名称作为字符串传递,我得到了令牌:

class TwilioServices
  ACCOUNT_SID     = ENV['TWILIO_ACCOUNT_SID']
  API_KEY_SID     = ENV['TWILIO_API_KEY_SID']
  API_KEY_SECRET  = ENV['TWILIO_API_KEY_SECRET']

  def self.get_token(type, room)
    # Create an Access Token
    token = Twilio::JWT::AccessToken.new ACCOUNT_SID, API_KEY_SID, API_KEY_SECRET, ttl: 7200, identity: type,

    # Grant access to Video
    grant = Twilio::JWT::AccessToken::VideoGrant.new
    grant.room = room
    token.add_grant grant
    # Serialize the token as a JWT
    token.to_jwt
  end
end

我该如何解决?

【问题讨论】:

    标签: ruby-on-rails twilio twilio-api


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    如果您让 SDK 在您加入房间时动态创建房间,那么您将无法在代码中设置录制标志。相反,您有两个选择:

    1. 您可以configure your room default settings in the Twilio console。在这里,您可以将房间设置为默认分组房间并打开录制。 (您无法记录点对点房间,因为媒体不通过 Twilio 服务器。)

    2. 您可以使用Video Rooms REST API 预先创建您的房间。自己创建房间时,还可以设置类型和是否录制。为此,您需要将 get_token 方法更新为:

      class TwilioServices
        ACCOUNT_SID     = ENV['TWILIO_ACCOUNT_SID']
        API_KEY_SID     = ENV['TWILIO_API_KEY_SID']
        API_KEY_SECRET  = ENV['TWILIO_API_KEY_SECRET']
      
        def self.get_token(type, room)
          # Create an Access Token
          token = Twilio::JWT::AccessToken.new ACCOUNT_SID, API_KEY_SID, API_KEY_SECRET, ttl: 7200, identity: type,
      
          client = Twilio::REST::Client.new(API_KEY_SID, API_KEY_SECRET, ACCOUNT_SID)
          video_room = client.video.rooms.create(
            unique_name: room,
            record_participants_on_connect: true,
            type: 'group'
          )
      
          # Grant access to Video
          grant = Twilio::JWT::AccessToken::VideoGrant.new
          grant.room = room
          token.add_grant grant
          # Serialize the token as a JWT
          token.to_jwt
        end
      end
      

    让我知道这是否有帮助。

    【讨论】:

    • 谢谢,这解决了问题,虽然我有点困惑试图理解视频房间和令牌之间的关系,我的意思是用于创建房间的配置如何与令牌一起传递,但我相信共享相同的房间名称“grant.room = room”就可以了。非常感谢
    • 是的,房间的标识符就是它的名字,所以当你为那个令牌授予对该房间的访问权限时,它会将用户连接到你创建的房间(只要他们在 5 分钟内连接,否则房间将被关闭)。
    • 不知道你所说的“统计定义”是什么意思,但是如果你为每个试图加入房间的人运行上面的代码,那么第一个人会进入,然后房间会被创建。你可以use the REST API to try to fetch the room by unique name first,如果存在就创建令牌,否则创建房间。
    • 在这种情况下,您将需要一些方法来使房间名称独一无二。也许是要进入房间的用户名组合的哈希?
    • 所以首先使用 REST API 按唯一名称获取房间。有关详细信息,请参阅上面的链接。 :)
    猜你喜欢
    • 2016-12-07
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多