webRTC: как определить наличие аудио/видео в потоке?

Я хотел бы знать наличие треков в полученном потоке при обратном вызове addstream. Видеосвязь работает хорошо, но я хотел бы сделать. вызов только аудио, поэтому я просто передал audio:true,video:false в ограничениях getUserMedia, теперь, когда я получаю поток, я не могу определить наличие треков в потоке.

Как узнать наличие треков в потоке?


person kongaraju    schedule 27.05.2013    source источник
comment
Вы пробовали getAudioTracks().length?   -  person Muaz Khan    schedule 27.05.2013
comment
как я узнаю об отсутствии VideoTracks?   -  person kongaraju    schedule 27.05.2013
comment
getVideoTracks().length или a=mid:присутствие видео в peer.remoteDescription.sdp   -  person Muaz Khan    schedule 27.05.2013
comment
Надеюсь, вы устанавливаете OfferToReceiveAudio:true и OfferToReceiveVideo:false --- вот так: github.com/muaz-khan/WebRTC-Experiment/blob/master/RTCall/   -  person Muaz Khan    schedule 27.05.2013
comment
поэтому, если длина равна 0, это должно быть только аудио   -  person kongaraju    schedule 27.05.2013


Ответы (1)


Чтобы узнать о наличии аудио и видео, используйте getAudioTracks и getVideoTracks.

function checkStream(stream){

   var hasMedia={hasVideo:false,hasAudio:false};

   if(stream.getAudioTracks().length)// checking audio presence
      hasMedia.hasAudio=true;

   if(stream.getVideoTracks().length)// checking video presence
      hasMedia.hasVideo=true;

    return hasMedia; 
}

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

constraints = {
            optional: [],
            mandatory: {
                OfferToReceiveAudio: true,
                OfferToReceiveVideo: false
            }
        };
person kongaraju    schedule 28.05.2013