1.5.0 • Published 4 years ago
react-use-pip v1.5.0
react-use-pip
React Hook for Picture in Picture.
Picture in Picture is a on going W3C draft so that websites to create a floating window to continue playing media while users interact with other content or sites. Before shipping your application with the feature, please be aware that the feature API is not widely supported yet across browsers and the implementation status can be found here. Please also see Can I Use for more information.
Features
- Lightweight and easy to use.
- Picture in picture browser support detection.
- TypeScript friendly. react-use-pip hook is written in TypeScript.
- Picture in Picture mode control with your own custom Event handlers.
Support
react-use-pipsupports React versions from 16.9.0 up. It also supports React 17 and React 18.
Install
In your project directory, run
npm install --save react-use-pipOr with Yarn
yarn add react-use-pipQuick Start
import usePictureInPicture from 'react-use-pip'
function VideoPlayer() {
const videoRef = useRef(null)
const {
isPictureInPictureActive,
isPictureInPictureAvailable,
togglePictureInPicture,
} = usePictureInPicture(videoRef)
return (
<div className="App">
<video ref={videoRef} autoPlay muted controls loop width="100%">
<source src="video-sample.mp4" />
</video>
{isPictureInPictureAvailable && (
<button
onClick={() => togglePictureInPicture(!isPictureInPictureActive)}
>
{isPictureInPictureActive ? 'Disable' : 'Enable'} Picture in Picture
</button>
)}
</div>
)
}API
const {
isPictureInPictureActive,
isPictureInPictureAvailable,
togglePictureInPicture,
} = usePictureInPicture(videoRef, options)Parameters
videoRef: Ref to pass in to video element as a propoptions: (optional) anobjectthat provides the hook a set of callback functions.
Return Values
isPictureInPictureActive = false:booleanthat signals whether picture in picture mode is active or inactiveisPictureInPictureAvailable:booleanthat signals whether picture in picture mode is supported and enabledtogglePictureInPicture(isActive: boolean) => void: function that provide you toggle picture in picture mode
Options (Optional)
onEnterPictureInPicture(event: Event) => void: (optional) callback function when entering picture in picture modeonLeavePictureInPicture(event: Event) => void: (optional) callback function when leaving picture in picture modeonRequestPictureInPictureError(error: any) => void: (optional) callback function when there is an error requesting picture in pictureonExitPictureInPictureError(error: any) => void: (optional) callback function when there is an error exiting picture in picture
License
MIT © DawChihLiou
