- From: guest271314 via GitHub <sysbot+gh@w3.org>
- Date: Tue, 02 Apr 2019 15:13:01 +0000
- To: public-webrtc-logs@w3.org
@yellowdoge cc @Pehrsons Some code ``` (async() => { const video = document.createElement("video"); video.id = "video"; document.body.appendChild(video); document.head.insertAdjacentHTML("beforeend", `<style>#video {cursor:none} video::-webkit-media-controls,audio::-webkit-media-controls {display:none !important;}</style>`) const stream = await navigator.mediaDevices.getDisplayMedia({ video: { cursor: "never" // this has little/no effect https://github.com/web-platform-tests/wpt/issues/16206 } }); console.log(stream, stream.getTracks()); let done; const promise = new Promise(resolve => done = resolve); document.addEventListener("click", async e => { // setTimeout(() => document.body.requestPointerLock(), 5000); // try to avoid using Pointer Lock API await video.requestFullscreen({ navigationUI: "hide" }); let urls = await Promise.all([{ src: "https://upload.wikimedia.org/wikipedia/commons/a/a4/Xacti-AC8EX-Sample_video-001.ogv", from: 0, to: 4 }, { src: "https://mirrors.creativecommons.org/movingimages/webm/ScienceCommonsJesseDylan_240p.webm#t=10,20" }, { from: 55, to: 60, src: "https://nickdesaulniers.github.io/netfix/demo/frag_bunny.mp4" }, { from: 0, to: 5, src: "https://raw.githubusercontent.com/w3c/web-platform-tests/master/media-source/mp4/test.mp4" }, { from: 0, to: 5, src: "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4" }, { from: 0, to: 5, src: "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerJoyrides.mp4" }, { src: "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerMeltdowns.mp4#t=0,6" }].map(async({...props }) => { const { src } = props; const blob = (await (await fetch(src)).blob()); return { blob, ...props } })); const context = new AudioContext(); const mixedAudio = context.createMediaStreamDestination(); const [audioTrack] = mixedAudio.stream.getAudioTracks(); const [videoTrack] = stream.getVideoTracks(); videoTrack.cursor = "never"; // this has little/no effect videoTrack.applyConstraints({ cursor: "never" }); // this has little/no effect console.log(videoTrack.cursor, videoTrack.getConstraints(), videoTrack.getSettings()); const mediaStream = new MediaStream([videoTrack, audioTrack]); [videoTrack, audioTrack].forEach(track => { track.onended = e => console.log(e); }); const source = context.createMediaElementSource(video); source.connect(context.destination); source.connect(mixedAudio); const recorder = new MediaRecorder(mediaStream, { mimeType: "video/webm;codecs=vp8,opus", audioBitsPerSecond: 128000, videoBitsPerSecond: 2500000 }); recorder.addEventListener("error", e => { console.error(e) }); recorder.addEventListener("dataavailable", e => { console.log(e.data); done(URL.createObjectURL(e.data)); }); recorder.addEventListener("stop", e => { console.log(e); [videoTrack, audioTrack].forEach(track => track.stop()); }); try { for (let [index, { from, to, src, blob }] of urls.entries()) { await new Promise(resolve => { const url = new URL(src); if (url.hash.length) { [from, to] = url.hash.match(/\d+|\d+\.\d+/g).map(Number); } const blobURL = URL.createObjectURL(blob); video.addEventListener("canplay", e => { video.controls = false; // wait for fullscreen notification to toggle to off setTimeout(() => video.play(), index === 0 ? 7000 : 0); }, { once: true }); video.addEventListener("playing", e => { if (recorder.state === "inactive") { recorder.start(); } }, { once: true }); video.addEventListener("pause", e => { resolve(); }, { once: true }); video.src = `${blobURL}#t=${from},${to}`; }) } recorder.stop(); // document.exitPointerLock(); await document.exitFullscreen(); } catch (e) { throw e; } }, { once: true }); return await promise; })() .then(console.log, console.error); ``` -- GitHub Notification of comment by guest271314 Please view or discuss this issue at https://github.com/w3c/mediacapture-record/issues/147#issuecomment-479043471 using your GitHub account
Received on Tuesday, 2 April 2019 15:13:03 UTC