English | 日本語
このレポジトリは、2018年3月に提供を終了する旧SkyWayのScreenShareライブラリです。新しいSkyWayへの移行をお願いします。
すでに新しいSkyWayをご利用の方は、新しいScreenShareライブラリをご覧ください。
WebRTCのWebアプリケーションでスクリーンシェア機能を簡単に実装できるライブラリです。 Chrome向けのextension用ソースコードとFirefox向けのadd-on用ソースコードも含まれています。
-
CDNを利用する場合
<script src="https://skyway.io/dist/screenshare.js"></script>
-
自分でビルドする場合
ライブラリをcloneします。
git clone [email protected]:nttcom/SkyWay-ScreenShare.git
ライブラリをビルドします。
cd SkyWay-ScreenShare && npm install && npm run build-library
生成されたライブラリを利用します。
SkyWay-ScreenShare/dist/screenshare.js SkyWay-ScreenShare/dist/screenshare.min.js
マニフェストファイル SkyWay-ScreenShare/chrome-extension/src/manifest.json
を修正します。
{
"name": "Your extension name here",
"short_name": "Your extension short_name here",
"version": "Your extension version number here",
"manifest_version": 2,
"description": "Your extension description here",
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
},
"permissions": [
"desktopCapture",
"tabs"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [{
"matches": [""],
"js": ["content.js"],
"all_frames": true,
"run_at": "document_end"
}]
}
必須の修正箇所は以下の通りです。
修正項目 | コメント |
---|---|
name | extensionのnameを指定して下さい。 |
short_name | extensionのshort_nameを指定して下さい。 |
version | extensionのversion番号を指定して下さい。 |
description | extensionのdescriptionを指定して下さい。 |
icons | extensionのiconファイル名(3種類)を指定して下さい。 iconファイルは SkyWay-ScreenShare/chrome-extension/src/ に配置して下さい。リポジトリにはSkyWayのiconファイルが同梱されています。 |
matches | extensionを利用するサイトのドメインを指定して下さい。 ドメイン指定には * (ワイルドカード)が利用可能です。例: "matches": ["https://*.skyway.io/*"] |
SkyWay-ScreenShareディレクトリに入り、Chrome extension用のビルドスクリプトを実行します。
cd SkyWay-ScreenShare && npm install && npm run build-chrome
Chromeでextensionのテストを行います。
- chrome://extensions/ にアクセス
- 「デベロッパーモード」を有効にする
- 「パッケージ化されていない拡張機能を読み込む」をクリック、以下のディレクトリを指定
SkyWay-ScreenShare/chrome-extension/screenshare_chrome_extension/
extensionを公開します。 Chrome Web Storeに公開する場合は以下のZipファイルを利用して下さい。
SkyWay-ScreenShare/chrome-extension/screenshare_chrome_extension.zip
メインプログラム SkyWay-ScreenShare/firefox-addon/src/lib/main.js
を修正します。
var pageMod = require('sdk/page-mod');
var self = require('sdk/self');
var __temp = require('chrome');
var Cc = __temp.Cc;
var Ci = __temp.Ci;
var domains_to_add = [''];
var addon_domains = [];
var allowed_domains_pref = 'media.getusermedia.screensharing.allowed_domains';
var enable_screensharing_pref = 'media.getusermedia.screensharing.enabled';
~~ 省略 ~~
必須の修正箇所は以下の通りです。
修正項目 | コメント |
---|---|
domains_to_add | ScreenShare機能を有効にするサイトのドメインを指定して下さい。 ドメイン指定には * (ワイルドカード)が利用可能です。例: var domains_to_add = ['*.skyway.io'] |
パッケージファイル SkyWay-ScreenShare/firefox-addon/src/package.json
を修正します。
{
"name": "your_add-on_name_here",
"title": "Your add-on title here",
"description": "Your add-on description here",
"author": "Your add-on author here",
"version": "Your add-on version number here",
"license": "Your add-on license here",
"homepage": "Your add-on homepage url here",
"icon64": "icon64.png",
"icon": "icon48.png"
}
必須の修正箇所は以下の通りです。
修正項目 | コメント |
---|---|
name | add−onのnameを指定して下さい。 |
license | add−onのlicenseを指定して下さい。 |
title | add−onのtitleを指定して下さい。 |
description | add−onのdescriptionを指定して下さい。 |
author | add−onのauthorを指定して下さい。 |
version | add−onのversion番号を指定して下さい。 |
homepage | add−onのhomepage urlを指定して下さい。 |
icon,icon64 | add−onのiconファイル名(2種類)を指定して下さい。 iconファイルは SkyWay-ScreenShare/firefox-addon/src/ に配置して下さい。 |
cfxコマンドラインツールをインストールします。
インストール方法は以下のサイトを参考にして下さい。 https://dev.mozilla.jp/addon-sdk-docs/dev-guide/tutorials/installation.html
add-onを プレビルド します。
cd SkyWay-ScreenShare && npm install && npm run pre-build-firefox
【注意】プレビルドはpackage.json
にidが記載されていないため失敗しますが、問題ありません。
~~ 省略 ~~
No 'id' in package.json: creating a new ID for you.
package.json modified: please re-run 'cfx xpi'
~~ 省略 ~~
add-onを ビルド します。
cd SkyWay-ScreenShare && npm install && npm run build-firefox
生成されたadd−onをFirefoxで読み込み動作確認を行います。
- about:addons にアクセス
- 画面にビルドしたadd-onファイル
SkyWay-ScreenShare/firefox-addon/screenshare_firefox_addon.xpi
をドラッグ・アンド・ドロップ
add−onをに公開します。 サービスサイト等で以下のadd-onファイルをダウンロード可能な状態にして下さい。
SkyWay-ScreenShare/firefox-addon/screenshare_firefox_addon.xpi
var screenshare = new SkyWay.ScreenShare([options]);
- options
- debug (boolean)
- ブラウザの開発者コンソールにデバッグログを出力します.
- debug (boolean)
- スクリーンシェアを開始します
screenshare.startScreenShare({
"Width": <number>,
"Height": <number>,
"FrameRate": <number>
},function(stream){
// success callback
// 成功するとstreamオブジェクトを取得できます
},function(error) {
// error callback
},function() {
// onEnded callback
// スクリーンシェアが終了した時に発火します(Chromeのみ対応/任意)
});
- スクリーンシェアを停止します
- startScreenShareで取得したstreamオブジェクトのstop()メソッドを実行する
- 専用メソッドは今後実装予定
stream.stop();
- Chrome extensionsまたはFirefox add-onがインストールされているかを確認する
<true or false>
var result = screenshare.isEnabledExtension();
- Chromeでextension scriptのloadが完了した時に発火するイベント。Inline Installation の際、このイベントをハンドルすることで、自動でScreenShare 機能を実行することができる。なお、Inline Installationを使う場合は、chrome-extension/src/background.js の config.hostname を利用されるWebサイトの hostname に変更してください。
window.addEventListner('message', function(ev) {
if(ev.data.type === "ScreenShareInjected") {
console.log('screen share extension is injected, get ready to start');
startScreenShare();
}
}, false);
https://skyway.io/examples/screenshare/
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request