更改MediaStream对象的VideoTrack

wpp*_*wpp 5 javascript google-chrome webrtc

在果壳中:我正试图改变VideoTrack一个MediaStream对象.

(文档:https://developer.mozilla.org/en-US/docs/WebRTC/MediaStream_API)

我有一个__o_jsep_stream_audiovideosipml库创建的MediaStream对象.

__o_jsep_stream_audiovideo 看起来像这样:

流对象

所以它有一个 AudioTrack和一个 VideoTrack.起初,VideoTrack来自用户相机(例如label: "FaceTime Camera").

根据文件:

MediaStream由零个或多个MediaStreamTrack对象组成,代表各种音频或视频轨道.

所以我们应该很好地添加更多的曲目到这个流.

我正在尝试使用另一个流来切换/交换VideoTrack.另一个stream(streamB)来自Chromes ScreenCapture api(label: "Screen")

streamB

我试过了:

__o_jsep_stream_audiovideo.addTrack(streamB.getVideoTracks()[0])

这似乎没有任何影响.

我也尝试直接分配videoTracks(我知道这绝望).

我必须遗漏一些明显的东西,你能指出我正确的方向吗?

我在跑

  • Chrome(版本34.0.1847.131)和
  • 金丝雀(版本36.0.1976.2金丝雀)
  • OSX 10.9.2

Ben*_*ent 1

在 MediaStream 对象上添加和删除轨道并不表示重新协商,并且在 chrome 中具有两个相同类型轨道的 MediaStream 也存在问题。

您可能应该将单独的媒体流添加到对等连接,以便它可以触发重新协商并处理流。Chrome 中的轨道添加/删除功能非常幼稚且不是很精细,您应该尽可能远离它。