Chromecast デバイスで動作しているレシーバー アプリケーションのスクリーンショットを作成したいと考えています。ビデオとアプリケーションを一緒に表示するには、デバイスで実行する必要があります。
これを行う方法はありますか?
Chromecast デバイスで動作しているレシーバー アプリケーションのスクリーンショットを作成したいと考えています。ビデオとアプリケーションを一緒に表示するには、デバイスで実行する必要があります。
これを行う方法はありますか?
アリ・ナダフの答えは技術的には真実ですが、少しの作業で、実際のスクリーンショットと見分けがつかないほど画面を忠実に再構築することができました.
次のコマンドを発行します。
html2canvas(document.body, {onrendered: function(canvas){document.write('');}});
これにより、画面が破壊的にスクリーンショットに置き換えられます(これは便利だと思いますが、必要に応じて、より丁寧な方法を簡単に考えることができます)
zsolt-szatmari の回答を、Chromecast デベロッパー ツール コンソールで使用できるコピー アンド ペースト可能なスクリプトに拡張しています。
彼が言ったように、 http://html2canvas.hertzen.com/build/html2canvas.jsコードをコピーしてコンソールに貼り付けます
html2canvas メソッドを呼び出します。DOM に新しい canvas 要素を作成しますhtml2canvas(document.body, { onrendered: function(canvas) { document.body.appendChild(canvas); } });
。
キャンバスに現在表示されている画像の base64 文字列表現を取得します。document.getElementsByTagName('canvas')[0].toDataURL('image/png');
非常に長い base64 文字列が表示されます。これをクリックすると、Chrome の新しいタブに画像が表示されます。html2canvas の制限により、この画像は Chromecast に実際に表示されるものとはかけ離れている可能性があることに注意してください。
スクリーンショットは DOM に基づいており、実際のスクリーンショットを作成するのではなく、ページで利用可能な情報に基づいてスクリーンショットを作成するため、実際の表現に対して 100% 正確ではない場合があります。
(ソース)
いいえ、メディアの権利やセキュリティなどの多くの理由により、それは不可能です。
これを使用して、キャンバスを画像ファイルにキャプチャできるのではないかと考えていました。これは通常、キャンバスを使用してJavaScriptで機能します。
var canvas = document.getElementById("mycanvas");
var img = canvas.toDataURL("image/png");
もちろん、この画像ファイルをどこかに転送する必要があります-chromecastからの最後のビットへの正確な方法はわかりません. 多分それは不可能です。
私自身 Chromecast の開発者として、顧客に見せるために実行中のアプリのスクリーンショットが必要でした。最終的に、Chromecast の一種の「シミュレーション」を実行しました。JavaScript でいくつかのモックアップ メソッドを呼び出してデータを表示し、ブラウザのデスクトップでキャスト URL を介してレシーバー アプリにアクセスしました。次に、スクリーン キャプチャ プログラムを使用して、ブラウザの出力をキャプチャしました。これにより、テレビの chromecast でレシーバー アプリを実行した場合と同じスクリーンショットが得られました。これは、基本的に、html+css+javascript レシーバーを表示する単なるブラウザーです。