将 OpenTok Publisher 切换到特定的视频设备

Switch OpenTok Publisher to specific video device

当希望更改 OpenTok Publisher 对象的音频输入设备(即麦克风)时,您可以使用:

Publisher.setAudioSource(<id_of_microphone_device_here>)

...以便指定您要切换到哪个麦克风。


但是,如果您想更改视频源(即相机),[我能找到]的唯一选择是使用:

Publisher.cycleVideo()

...其中 returns(通过承诺)您切换到 'cycling' 的媒体设备/网络摄像头的 ID。

有没有一种方法可以专门切换到我选择的视频设备 ID,而不必:

一个。重新初始化我的 Publisher 对象?

-或-

b。循环浏览我的视频设备,直到找到我想要的设备?


我问是因为,为了争论起见,假设用户有 10 个摄像头输入 — 其中一些他们不希望 'cycle' 通过直播来获得他们想要的。

是否可以像定位音频设备一样定位视频设备的 ID?

为了 'hack' 这个工作,我尝试做的是首先禁用发布者 (Publisher.publishVideo(false)) 的视频输出,循环查找我想要的,然后're-enable' 视频输出。但是,禁用发布者的视频输出似乎会导致无法在其视频设备之间循环的不幸后果。

这里是 OpenTok Developer Advocate。

setAudioSource不同的是,视频没有对比方法。

一种替代方法是将视频发布到 canvas 并将其用作发布者的来源。您可以在 https://tokbox.com/developer/guides/publish-stream/js/#canvas.

了解更多相关信息

然后利用 MediaDevices.enumerateDevices() 识别您的设备并将其输出写入 canvas。 https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices