5

Chromecast デバイスで動作しているレシーバー アプリケーションのスクリーンショットを作成したいと考えています。ビデオとアプリケーションを一緒に表示するには、デバイスで実行する必要があります。

これを行う方法はありますか?

4

4 に答える 4

3

アリ・ナダフの答えは技術的には真実ですが、少しの作業で、実際のスクリーンショットと見分けがつかないほど画面を忠実に再構築することができました.

  1. html2canvas プロジェクトのコードを使用します。 http://html2canvas.hertzen.com/documentation.htmlを参照してください。画面をキャンバスにレンダリングします。具体的には、コンパイルされたコードをhttp://html2canvas.hertzen.com/build/html2canvas.jsからコピーして Chromecast コンソールに貼り付けます。(dom へのタグの追加は機能しないようです) Chrome 経由で ip.ad.dr.ss:9222 ポートにアクセスすることで、Chromecast コンソールと開発者ツールにアクセスできます。
  2. 次のコマンドを発行します。

    html2canvas(document.body, {onrendered: function(canvas){document.write('');}});

    これにより、画面が破壊的にスクリーンショットに置き換えられます(これは便利だと思いますが、必要に応じて、より丁寧な方法を簡単に考えることができます)

  3. 要素ブラウザーには、src として指定された base64 URL を持つ img があります。URL をクリックすると、chrome が新しいタブで画像を開きます。うまくいけば、それはあなたが望んでいたスクリーンショットです。
  4. たとえば、同じ起源のポリシーのために、一部の写真が欠落していることに気付く場合があります。javascript には、html から画像にアクセスする以外の権限があります。これが発生した場合は、何らかの方法で解決し (たとえば、画像に https を使用)、1 に進みます。
  5. あなたのスクリーンショットがあります!
于 2014-08-15T17:42:37.563 に答える
2

zsolt-szatmari の回答を、Chromecast デベロッパー ツール コンソールで使用できるコピー アンド ペースト可能なスクリプトに拡張しています。

  1. 彼が言ったように、 http://html2canvas.hertzen.com/build/html2canvas.jsコードをコピーしてコンソールに貼り付けます

  2. html2canvas メソッドを呼び出します。DOM に新しい canvas 要素を作成しますhtml2canvas(document.body, { onrendered: function(canvas) { document.body.appendChild(canvas); } });

  3. キャンバスに現在表示されている画像の base64 文字列表現を取得します。document.getElementsByTagName('canvas')[0].toDataURL('image/png');

非常に長い base64 文字列が表示されます。これをクリックすると、Chrome の新しいタブに画像が表示されます。html2canvas の制限により、この画像は Chromecast に実際に表示されるものとはかけ離れている可能性があることに注意してください。

スクリーンショットは DOM に基づいており、実際のスクリーンショットを作成するのではなく、ページで利用可能な情報に基づいてスクリーンショットを作成するため、実際の表現に対して 100% 正確ではない場合があります。

ソース

于 2015-02-15T20:34:07.207 に答える
2

いいえ、メディアの権利やセキュリティなどの多くの理由により、それは不可能です。

于 2013-10-29T15:52:10.667 に答える
0

これを使用して、キャンバスを画像ファイルにキャプチャできるのではないかと考えていました。これは通常、キャンバスを使用してJavaScriptで機能します。

var canvas = document.getElementById("mycanvas");
var img = canvas.toDataURL("image/png");

もちろん、この画像ファイルをどこかに転送する必要があります-chromecastからの最後のビットへの正確な方法はわかりません. 多分それは不可能です。

私自身 Chromecast の開発者として、顧客に見せるために実行中のアプリのスクリーンショットが必要でした。最終的に、Chromecast の一種の「シミュレーション」を実行しました。JavaScript でいくつかのモックアップ メソッドを呼び出してデータを表示し、ブラウザのデスクトップでキャスト URL を介してレシーバー アプリにアクセスしました。次に、スクリーン キャプチャ プログラムを使用して、ブラウザの出力をキャプチャしました。これにより、テレビの chromecast でレシーバー アプリを実行した場合と同じスクリーンショットが得られました。これは、基本的に、html+css+javascript レシーバーを表示する単なるブラウザーです。

于 2014-10-01T19:17:35.613 に答える