Skip to content

Instantly share code, notes, and snippets.

@hasegawayosuke
Created April 22, 2020 12:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hasegawayosuke/83e81c48dc51f74608bc89ff1377dc62 to your computer and use it in GitHub Desktop.
Save hasegawayosuke/83e81c48dc51f74608bc89ff1377dc62 to your computer and use it in GitHub Desktop.
Google MeetでgetUserMediaをhookして好きな動画ファイルをカメラ替わりに流す
(()=>{
const file = document.createElement('input');
const video = document.createElement('video');
video.loop = true;
file.setAttribute('type', 'file');
file.addEventListener('change', (evt) => {
const url = window.URL.createObjectURL(file.files[0]);
video.src = url;
video.muted = true;
video.playbackRate = 1.0; // 動画の再生速度を変更したいときはこのパラメータを変える。
video.play();
}, false);
document.querySelector('div.jzP6rf').appendChild(file);
if (navigator.mediaDevices._getUserMedia === undefined)
navigator.mediaDevices._getUserMedia = navigator.mediaDevices.getUserMedia;
navigator.mediaDevices.getUserMedia = function (c) {
return new Promise((resolve, reject) => {
console.log('#', c);
navigator.mediaDevices._getUserMedia(c)
.then((stream) => {
const newStream = video.captureStream();
stream.removeTrack(stream.getVideoTracks()[0])
stream.addTrack(newStream.getVideoTracks()[0]);
resolve(stream);
})
.catch((err) => {
reject(err);
});
});
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment