Это возможно, хотя, очевидно, только в браузерах, которые поддерживают PIP (на момент этого ответа это только Chrome 70 и 71).
Чтобы заставить его работать, прослушайте i введите ваш switch
.Затем вы можете позвонить requestPictureInPicture()
на плеер, чтобы он перешел в режим PIP.Чтобы переключение работало при повторном нажатии i , необходимо проверить свойство pictureInPictureElement
document
.Если он возвращает true
, то режим PIP уже используется, и вы можете завершить его, вызвав document.exitPictureInPicture()
, например:
var player = $("#player")[0];
$(window).keydown(function(e) {
switch (e.which) {
case 32:
player.paused ? player.play() : player.pause();
break;
case 73:
if (player.requestPictureInPicture) { // feature detection to stop errors in unsupported browsers
if (document.pictureInPictureElement) {
document.exitPictureInPicture();
} else {
player.requestPictureInPicture();
}
}
break;
}
});
video {
width: 450px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<video id="player" controls>
<source src="https://www.w3schools.com/howto/rain.mp4" type="video/mp4">
</video>
Одно предостережение: при нажатии i фокус переносится в окно PIP, следовательно, при нажатии i второй раз, кажется, ничего не делает, пока вы снова не нажмете на окно браузера, чтобы вернуть фокус, чтобы прослушиватель keydown
мог вступить в силу.