[Q&A]canvas.captureStream()のストリームをcallで届けたい

265 views
Skip to first unread message

kimura

unread,
Oct 6, 2016, 4:25:49 AM10/6/16
to SkyWay Technical Forum
お世話になっております.木村と申します.

SkyWay JavaScript SDKを利用してビデオ会議システムを構築しようとしているのですが,
canvas.captureStream()のストリームを送ることができません.
どのようすればよいか,どなたかご教授いただけないでしょうか。
よろしくお願いいたします。

【発生事象】
canvas要素をビデオとして送信したいと思い
canvas.captureStream()でcanvasをストリームとして
peer.callしても相手に送信されていないようなのです.
送信先で再生すると真っ黒なストリームになってしまいました.
(送信元でストリームを再生すると正常に再生されるので,ストリームの取得は正常にできている?)
カメラで取得したストリームやDataConnectionによる通信も通常どおり行えました.

【環境】
ブラウザ:GoogleChrome53.0.2785.143 (64-bit),Firefox49.0.1
OS:openSUSE13.1,Windows8

【その他】
consoleなどには一切エラーは出ていません.
またMediaStream.openやMediaStream.activeもtrueでした.

桂 健太

unread,
Oct 6, 2016, 10:34:52 PM10/6/16
to SkyWay Technical Forum
SkyWay開発チームの桂です。

SkyWayをご利用いただきありがとうございます。
Githubに公開されている下記リポジトリのコードで、
Canvasのストリーム送信を試したところ正常に動作致しました (Firefox <-> Chrome間)


こちらのコードで動作をお試しいただけますでしょうか?
よろしくお願い致します。


2016年10月6日木曜日 17時25分49秒 UTC+9 kimura:

kimura

unread,
Oct 13, 2016, 5:00:38 AM10/13/16
to SkyWay Technical Forum
木村です.

桂様
返信が遅くなり申し訳ありません。

live-paintを試した結果,正常に動作しました.
原因を調査したところ,canvasをclearRect()したときに,キャンバス全体が透明な黒で塗りつぶされ,それが送信されることで真っ黒なストリームになってしまったようです.
実際にキャンバスに描く図形を白にしたところ,黒字に白で描くことができました.現在はもう一度背景を白で塗りつぶすことで,対応しています.
送信元でストリームを再生したときは透明な白で塗りつぶされているように見えたので勘違いしていました.

どうもありがとうございました.

2016年10月7日金曜日 11時34分52秒 UTC+9 桂 健太:
Reply all
Reply to author
Forward
0 new messages