пользователь без камеры не может принимать видео от другого пользователя

Когда пользователь A без камеры звонит пользователю B с камерой, он получит поток без видеодорожек. В этом случае пользователь B генерирует SDP с такой строкой a=group:BUNDLE audio, когда обычно она содержит упоминания о видео, такие как a=group:BUNDLE audio video и m=video 1 RTP/SAVPF 100 116 117 96.

Вот мой код в coffeescript для принятия предложения:

acccept_offer: (sdp, success) ->
  sdp = new _RTCSessionDescription sdp

  @connection.setRemoteDescription sdp, =>
    if @candidates.length
      for candidate in @candidates
        @connection.addIceCandidate candidate
      @candidates = []
    @connection.createAnswer (description) =>
      description = new _RTCSessionDescription
        sdp: @set_bandwidth description.sdp
        type: description.type
      @local_description = description
      @connection.setLocalDescription @local_description, ->
        success()
      , (e) ->
        console.log e
    , (e) ->
      console.log e
  , (e) ->
    console.log e

Почему это странное поведение и как его избежать?


person SET    schedule 08.09.2014    source источник
comment
Каковы ограничения однорангового соединения. Вы должны иметь возможность установить, если вы только получаете/отправляете только для каждого типа мультимедиа. Пример: var sdpConstraints = { 'mandatory': { 'OfferToReceiveAudio': true, 'OfferToReceiveVideo': false } };   -  person Benjamin Trent    schedule 08.09.2014
comment
@BenjaminTrent, я установил ограничения в createOffer/createAnswer, и теперь это работает как шарм. Спасибо за совет. Сделайте это ответом, и я приму его.   -  person SET    schedule 08.09.2014


Ответы (1)


Вам нужно установить ограничения в создании RTCPeerConnection, чтобы сообщить SDP, какие медиа вы хотите отправлять/получать.

Пример:

var sdpConstraints = { 'mandatory': { 'OfferToReceiveAudio': true, 'OfferToReceiveVideo': false } };
person Benjamin Trent    schedule 08.09.2014