示例#1
0
文件: rtcaudio.py 项目: dkumor/rtcbot
    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()
示例#2
0
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)
示例#3
0
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)
示例#4
0
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
示例#5
0
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()
示例#6
0
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()
示例#7
0
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)
示例#8
0
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
示例#9
0
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)
示例#10
0
文件: avshow.py 项目: techwitz/rtcbot
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()