1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
<!DOCTYPE html>
<html>
<head>
<style>
video {
width: 480px;
height: 320px;
position: absolute;
}
button {
top: 320px;
left: 20px;
position: absolute;
}
body {
margin: 0;
}
</style>
<script>
function playing() {
setTimeout(function() {
try {
window.webkit.messageHandlers.testHandler.postMessage("playing");
} catch(e) {
}
}, 0);
}
function seeked() {
setTimeout(function() {
try {
window.webkit.messageHandlers.testHandler.postMessage("seeked");
} catch(e) {
console.debug(`error: ${e}`);
}
}, 0);
}
function seekTo(time) {
document.querySelector("video").currentTime = time;
}
function setLoop(loop) {
document.querySelector("video").loop = loop;
}
function mousedown() {
document.querySelector("video").muted = true;
}
function removeVideoElement() {
document.body.removeChild(document.querySelector("video"));
return document.querySelector("video");
}
function play() {
document.querySelector("video").play();
}
function pause() {
document.querySelector("video").pause();
}
function stopped() {
setTimeout(function() {
try {
window.webkit.messageHandlers.testHandler.postMessage("paused");
} catch(e) {
console.debug(`error: ${e}`);
}
}, 0);
}
function handleEnded() {
setTimeout(function() {
try {
window.webkit.messageHandlers.testHandler.postMessage("ended");
} catch(e) {
console.debug(`error: ${e}`);
}
}, 0);
}
function canplaythrough() {
setTimeout(function() {
try {
window.webkit.messageHandlers.testHandler.postMessage("canplaythrough");
} catch(e) {
console.debug(`error: ${e}`);
}
}, 0);
}
function setMediaSessionMetadata() {
navigator.mediaSession.metadata = new MediaMetadata({
title: "bar",
artwork: [
{
src: "400x400-green.png",
sizes: "400x400",
type: "image/png",
},
],
});
}
function loadSubframe() {
const frame = document.createElement("iframe");
frame.addEventListener("load", () => {
window.webkit.messageHandlers.testHandler.postMessage("subframeLoaded");
});
frame.src = "simple.html";
document.body.appendChild(frame);
}
</script>
</head>
<body>
<video autoplay title="foo" onmousedown=mousedown() onplaying=playing() onpause=stopped() onseeked=seeked() onended=handleEnded() oncanplaythrough=canplaythrough()>
<source src="large-video-with-audio.mp4">
</video>
<button onclick="console.log(removeVideoElement())">Stop!</button>
</body>
<html>
|