fewd/priv/static/js/ts/webrtc.ts
Peter Harpending 079009a13e [wip] now display user's camera
next tricky thing is connecting users
2026-02-24 10:40:43 -08:00

55 lines
1.3 KiB
TypeScript

/**
* webrtc page script
*
* Author: Peter Harpending <peterharpending@qpq.swiss>
* Date: 2026-02-04
* Copyright: Copyright (c) 2026 QPQ AG
*
* Reference: https://git.qpq.swiss/QPQ-AG/research-megadoc/src/commit/c7c4592d4b21ad120145ef63334471a1a7ec1e60/paste/2026-02/grok-webrtc.html
*
* @module
*/
main();
async function
main
()
: Promise<void>
{
console.log('peepy');
let video : MediaStream = await getUserCamera();
console.log('poopy');
console.log('poopu');
let moi = document.getElementById('me') as HTMLVideoElement;
moi.srcObject = video;
console.log('poopa');
}
/**
* Try to get the user's camera
*
* tries to get screenshare if user camera not available for whatever reason
*
* chimps out if
* - not on https
* - user says no
*/
async function
getUserCamera
()
: Promise<MediaStream>
{
if (!(navigator.mediaDevices)) {
console.error('navigator.mediaDevices is null; user not on https or something');
}
let availableDevices: Array<MediaDeviceInfo> =
await navigator.mediaDevices.enumerateDevices();
console.log(availableDevices);
return await navigator.mediaDevices.getUserMedia({video: true, audio: false});
// return await navigator.mediaDevices.getDisplayMedia();
}