Limited availability
The HTMLVideoElement
method requestPictureInPicture()
issues an asynchronous request to display the video in picture-in-picture mode.
It's not guaranteed that the video will be put into picture-in-picture. If permission to enter that mode is granted, the returned Promise
will resolve and the video will receive a enterpictureinpicture
event to let it know that it's now in picture-in-picture.
requestPictureInPicture()
Parameters
None.
Return valueA Promise
that will resolve to a PictureInPictureWindow
object that can be used to listen when a user will resize that floating window.
NotSupportedError
DOMException
Thrown if the feature is not supported (for example, disabled by a user preference or by a platform limitation).
SecurityError
DOMException
Thrown if the feature is blocked by a Permissions Policy.
InvalidStateError
DOMException
Thrown if the video element's readState
is HAVE_NOTHING
, or if the video element has no video track, or if the video element's disablePictureInPicture
attribute is true
.
NotAllowedError
DOMException
Thrown if document.pictureInPictureElement
is null
and the document does not have transient activation.
Transient user activation is required. The user has to interact with the page or a UI element for this feature to work.
ExamplesThis example requests that the video enters Picture-in-Picture mode, and sets an event listener to handle the floating window resizing.
function enterPictureInPicture() {
videoElement.requestPictureInPicture().then((pictureInPictureWindow) => {
pictureInPictureWindow.addEventListener(
"resize",
() => onPipWindowResize(),
false,
);
});
}
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4