mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-19 18:27:29 -05:00
* Remove duplicate LICENSE. * Remove un-userd pyscript.sw directory and its content. * Remove ReadTheDocs settings (unused). * Remove un-used pyproject.toml * Remove now unused CHANGELOG. Changes now tracked via release notes on GitHub. * Updated / cleaned release page template and associated GH actions. * Update prettierignore to remove un-needed refs. * Move troubleshooting into correct README. * Add reason for the index.html * Rename the "pyscript.core" directory to "core". * Update PR template because CHANGELOG is no longer used. * Codespell configuration in pyproject.toml. * Update pyscript.core -> core in .githubignore * Remove test-results/.last-run.json. This should be ignored by git. * Pin nodejs version. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
33 lines
887 B
Python
33 lines
887 B
Python
from pyodide.ffi import create_proxy
|
|
from pyscript import display, document, when, window
|
|
from pyweb import media, pydom
|
|
|
|
devicesSelect = pydom["#devices"][0]
|
|
video = pydom["video"][0]
|
|
devices = {}
|
|
|
|
|
|
async def list_media_devices(event=None):
|
|
"""List the available media devices."""
|
|
global devices
|
|
for i, device in enumerate(await media.list_devices()):
|
|
devices[device.id] = device
|
|
label = f"{i} - ({device.kind}) {device.label} [{device.id}]"
|
|
devicesSelect.options.add(value=device.id, html=label)
|
|
|
|
|
|
@when("click", "#pick-device")
|
|
async def connect_to_device(e):
|
|
"""Connect to the selected device."""
|
|
device = devices[devicesSelect.value]
|
|
video._js.srcObject = await device.get_stream()
|
|
|
|
|
|
@when("click", "#snap")
|
|
async def camera_click(e):
|
|
"""Take a picture and download it."""
|
|
video.snap().download()
|
|
|
|
|
|
await list_media_devices()
|