///
///
///
import { Scrapbox } from "https://raw.githubusercontent.com/scrapbox-jp/types/0.4.2/userscript.ts";
declare const scrapbox: Scrapbox;
let video: HTMLVideoElement | undefined;
scrapbox.PageMenu.addItem({
title: "recording",
onClick: async () => {
if (video) return;
const stream = await navigator.mediaDevices.getDisplayMedia({
video: true,
audio: false,
});
video = document.createElement("video");
video.style.maxWidth = "50%";
video.style.position = "fixed";
video.style.bottom = "5%";
video.style.left = "5%";
video.controls = true;
video.autoplay = true;
video.srcObject = stream;
video.currentTime = 7*24*60*1000;
video.onseeked = ()=>{
alert("after-seeked: "+video.duration);
video.onseeked = undefined;
};
document.body.append(video);
},
});
scrapbox.PageMenu.addItem({
title: "stop",
onClick: () => {
if (!video) return;
const stream = video.srcObject;
if (stream instanceof MediaStream) {
for (const track of stream.getTracks()) {
track.stop();
}
}
video.srcObject = null;
video.remove();
video = undefined;
},
});