Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
このガイドでは、文書ピクチャインピクチャ API の一般的な使用方法について解説します。
メモ: 実際に動作するデモについては、Document Picture-in-Picture API Example の例をご覧ください(ソースコードの全文も参照してください)。
以下の HTML は、基本的な動画プレーヤーを設定するものです。
文書ピクチャインピクチャ API に対応しているかどうかを確認するには、window 上で documentPictureInPicture が利用可能かどうかを検査します。
利用可能な場合は、「文書ピクチャインピクチャ API は利用できません」というメッセージを非表示にし、代わりに <button> 要素を追加して、動画プレーヤーを文書ピクチャインピクチャウィンドウで開くようにします。
次の JavaScript は、window.documentPictureInPicture.requestWindow() を呼び出して、空のピクチャインピクチャウィンドウを開きます。返される Promise は、ピクチャインピクチャ Window オブジェクトで解決されます。Element.append() を使用して動画プレーヤーをそのウィンドウに移動し、移動されたことをユーザーに知らせるメッセージを表示します。
requestWindow() の width および height オプションを使用すると、ピクチャインピクチャウィンドウを希望のサイズに設定できます。オプションの値が大きすぎたり小さすぎたりして、ユーザーにとって使いやすいウィンドウサイズに収まらない場合、ブラウザーはその値を調整することがあります。
元のウィンドウからすべての CSS スタイルシートをコピーするには、文書に明示的にリンクされている、または埋め込まれている(Document.styleSheets 経由)すべてのスタイルシートをループ処理し、それらをピクチャインピクチャウィンドウに追加します。なお、これは 1 回限りのコピーであることに注意してください。
display-mode メディア特性の picture-in-picture 値を使用すると、文書がピクチャインピクチャモードで表示されているかどうかに基づいて、CSS を適用することができます。基本的な使用方法は以下の通りです。
このスニペットは、文書の <body> がピクチャインピクチャモードで表示されている場合に限り、その背景を赤色にします。 こちらのデモでは、 display-mode: picture-in-picture の値と prefers-color-scheme メディア特性とを組み合わせて、アプリがピクチャインピクチャモードで表示されている場合に限り、ユーザーの配色設定に基づいて適用されるライト配色とダーク配色を作成しています。
ボタンが 2 回押されるとピクチャインピクチャウィンドウを再び閉じるためのコードは、次のようになります。
ここでは、DOM の変更を元に戻します。つまり、メッセージを非表示にし、動画プレーヤーをメインアプリウィンドウのプレーヤーコンテナーに戻します。また、Window.close() メソッドを使用して、プログラムからピクチャインピクチャウィンドウを閉じます。
ただし、ユーザーがウィンドウ上のブラウザー提供の閉じるボタン(UI コントロール)を押してピクチャインピクチャウィンドウを閉じるケースについても考慮する必要があります。これは、pagehide イベントを使用してウィンドウが閉じられたことを検知することで処理できます。
メモ: 最初に DocumentPictureInPicture.requestWindow() を呼び出してピクチャインピクチャウィンドウを開く際、オプションオブジェクト内で disallowReturnToOpener ヒントを true に設定することで、ブラウザーが提供する UI の閉じるボタンを非表示にすることができます。
DocumentPictureInPicture インスタンスの enter イベントを監視することで、ピクチャインピクチャウィンドウが開かれたタイミングを把握できます。
このデモでは、enter イベントを使用して、ピクチャインピクチャウィンドウにミュート切り替えボタンを追加しています。
メモ: DocumentPictureInPictureEvent イベントオブジェクトには、ピクチャインピクチャウィンドウにアクセスするための window プロパティが含まれています。
ピクチャインピクチャウィンドウ内の要素には、いくつかの方法でアクセスできます。
ピクチャインピクチャの window インスタンスへの参照を取得したら、通常のブラウザーウィンドウのコンテキストと同様に、DOM の操作(ボタンの作成など)や、ユーザー入力イベント(click など)への対応を行うことができます。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。