こんにちは
日本トータルシステム(株)の赤坂と申します。
Skywayを使わせていただき、WebRTCを試しています。
拡張機能に関して全く理解していないまま、
を見ながらchromeで画面共有を行ってみました。
なんとか画面共有の選択画面が表示され、自分のカメラストリームを画面共有ストリームに変えて、相手ブラウザで画面共有を確認出来ました。
ただ、拡張機能インストール後、すぐに画面共有ができません。
具体的にいうと、拡張機能をインストールした後、下記javascriptの screen_share.isEnabledExtension が true にならず、
アラートが出るばかりです
ページを一度リロードすると、普通に画面共有することが出来ます。
マニフェストに関するページ(英語ToTなので厳しい)をgoogle翻訳しながら見ましたが、コレだというものを見つけられませんでした。
appear.inやBizMeeといったチャットサービス?などは、拡張機能をインストール後、すぐに画面共有が可能な様に動作します。
拡張機能インストール後に、ページリロードせずに画面共有するための方法はありますでしょうか?
拡張機能に必要な manifest.json、background.js、content.jsはサンプルのまま使っています。
"matches": [""]だけは、自分のローカルIPアドレスに変えました
npmのバージョンは 2.14.7
chromeのバージョンは 48.0.2564.103 m
webサーバーとpeerjsサーバーはローカルに構築しています
拡張機能はデベロッパーモードにして「パッケージ化されていない拡張機能を読み込む」、
また$5かけて、Chromeウェブストアのダッシュボードから拡張機能を追加したものをインストールしても同じ事象です
<ul class="dropdown-menu" role="menu">
<li id="c_click1" role="presentation"><a role="menuitem" tabindex="-1" href="#"> カメラ向き切替</a></li>
<li id="c_click2" role="presentation"><a role="menuitem" tabindex="-1" href="#"> カメラ映像</a></li>
<li id="c_click3" role="presentation"><a role="menuitem" tabindex="-1" href="#"> 画面共有</a></li>
</ul>
$('#c_click3').click(function () {
screen_share = new SkyWay.ScreenShare({debug: false});
if (screen_share_mode == 1){
panel_info("<h6>相手が画面共有中です。</h6>");
return;
}
myvideo_mode = 1;
if(screen_share.isEnabledExtension()){
screen_share.startScreenShare({
"Width": 1280,
"Height": 720,
"FrameRate": 10
},function(stream){
// success callback
// If successful, you can get a own stream object
ScStream = stream;
display_bisible('local-screen-content');
display_hidden('local-video-content');
attachMediaStream($('#local-screen')[0],stream);
Stream_switching_Screen();
},function(error) {
// error callback
console.log("screen share error" )
console.log(error)
},function() {
Stream_switching_Camera();
})
}else{
alert('ExtensionまたはAddonをインストールして下さい');
});