Microphone, Speaker, CVDisplay, CVCamera, SubscriptionClosed, ) import logging from contextlib import suppress import signal logging.basicConfig(level=logging.DEBUG) m = Microphone() s = Speaker() d = CVDisplay() cam = CVCamera() # cam.subscribe(d) c1 = RTCConnection() c2 = RTCConnection() c1.video.putSubscription(cam) c1.audio.putSubscription(m) c2.video.subscribe(d) c2.audio.subscribe(s) async def testMe(): offer = await c1.getLocalDescription()
import asyncio from rtcbot import Microphone, Speaker, CVCamera, CVDisplay import asyncio import functools import os import signal from contextlib import suppress import logging logging.basicConfig(level=logging.DEBUG) s = Speaker() m = Microphone() c = CVCamera() d = CVDisplay() m.subscribe(s) c.subscribe(d) loop = asyncio.get_event_loop() """ def shutdown(signame): print("got signal %s: exit" % signame) loop = asyncio.get_event_loop() loop.stop() for sig in (signal.SIGINT, signal.SIGTERM): loop.add_signal_handler(sig, shutdown, sig)
import cv2 import json import time import serial import imutils import asyncio import datetime from utils.conf import Conf from threading import Thread from imutils.io import TempFile from imutils.video import VideoStream from Logix_dir.MotionWriter import KeyClipWriter, Uploader from rtcbot import Websocket, RTCConnection, CVCamera, CVDisplay cam = CVCamera() display = CVDisplay() trans = 0 PS = False # pin state resp from Arduino cams = False # flag var for webrtc video started kcw = KeyClipWriter(bufSize=32) conf = Conf("config/config.json") up = Uploader(conf) path = '' try: arduino = serial.Serial('/dev/ttyUSB0', 9600, timeout=.1) time.sleep(1)
from aiohttp import web routes = web.RouteTableDef() from rtcbot import RTCConnection, getRTCBotJS, CVCamera camera = CVCamera() # For this example, we use just one global connection conn = RTCConnection() conn.video.putSubscription(camera) import time import random import asyncio def get_sensor_data(): time.sleep(0.5) # Represents an operation that takes half a second to complete return random.random() async def send_sensor_data(): while True: await asyncio.sleep(1) data = get_sensor_data() conn.put_nowait(data) # Send data to browser asyncio.ensure_future(send_sensor_data()) # Serve the RTCBot javascript library at /rtcbot.js
import asyncio from rtcbot import CVCamera, CVDisplay camera = CVCamera() display = CVDisplay() display.putSubscription(camera) try: asyncio.get_event_loop().run_forever() finally: camera.close() display.close()
import asyncio from rtcbot import Websocket, RTCConnection, CVCamera cam = CVCamera() conn = RTCConnection() conn.video.putSubscription(cam) # Connect establishes a websocket connection to the server, # and uses it to send and receive info to establish webRTC connection. async def connect(): # ws = Websocket("http://localhost:8080/ws") # ws = Websocket("https://rtcbot.dev/myRandomSequence1532") # ws = Websocket("http://13.127.250.133:8080/ws") # ws = Websocket("http://localhost:8080/xyz") # xyz could be the remote device id, in multi_client mode. ws = Websocket("http://13.127.250.133:1452/xyz001") remoteDescription = await ws.get() robotDescription = await conn.getLocalDescription(remoteDescription) ws.put_nowait(robotDescription) print("Started WebRTC") await ws.close() asyncio.ensure_future(connect()) try: asyncio.get_event_loop().run_forever() finally: cam.close() conn.close()
import asyncio from rtcbot import Websocket, RTCConnection, CVCamera, CVDisplay, Speaker, Microphone flag = 0 camera1 = CVCamera(cameranumber=0) camera2 = CVCamera(cameranumber=2) mic = Microphone() display = CVDisplay() speaker = Speaker() # For this example, we use just one global connection conn = RTCConnection() conn.video.putSubscription(camera1) conn.audio.putSubscription(mic) display.putSubscription(conn.video.subscribe()) speaker.putSubscription(conn.audio.subscribe()) async def receiver(): global flag while True: if flag: frameSubscription = camera2.subscribe() else: frameSubscription = camera1.subscribe() frame = await frameSubscription.get() conn.video.put_nowait(frame) @conn.subscribe def onMessage(msg): # Called when each message is sent
from aiohttp import web import asyncio routes = web.RouteTableDef() from rtcbot import RTCConnection, getRTCBotJS, CVDisplay, Speaker, CVCamera, Microphone flag = 0 camera1 = CVCamera(cameranumber=0) camera2 = CVCamera(cameranumber=2) mic = Microphone() display = CVDisplay() speaker = Speaker() # For this example, we use just one global connection conn = RTCConnection() conn.video.putSubscription(camera1) conn.audio.putSubscription(mic) display.putSubscription(conn.video.subscribe()) speaker.putSubscription(conn.audio.subscribe()) async def receiver(): global flag while True: if flag: frameSubscription = camera2.subscribe() else: frameSubscription = camera1.subscribe() frame = await frameSubscription.get() conn.video.put_nowait(frame)
from rtcbot import Microphone, Speaker, CVCamera, CVDisplay import asyncio import logging logging.basicConfig(level=logging.DEBUG) m = Microphone() s = Speaker() c = CVCamera() d = CVDisplay() s.putSubscription(m) d.putSubscription(c) @c.onReady def ready(): print("LOL READY") @d.onError def err(e): print("ERR", e) asyncio.get_event_loop().run_forever()