mirror of
https://github.com/pion/webrtc.git
synced 2025-10-05 07:06:51 +08:00
Add StandardJS workflow
Been running these locally only.
This commit is contained in:
@@ -3,17 +3,17 @@
|
||||
// cipherKey that video is encrypted with
|
||||
const cipherKey = 0xAA
|
||||
|
||||
let pc = new RTCPeerConnection({encodedInsertableStreams: true, forceEncodedVideoInsertableStreams: true})
|
||||
let log = msg => {
|
||||
const pc = new RTCPeerConnection({ encodedInsertableStreams: true, forceEncodedVideoInsertableStreams: true })
|
||||
const log = msg => {
|
||||
document.getElementById('div').innerHTML += msg + '<br>'
|
||||
}
|
||||
|
||||
// Offer to receive 1 video
|
||||
let transceiver = pc.addTransceiver('video')
|
||||
const transceiver = pc.addTransceiver('video')
|
||||
|
||||
// The API has seen two iterations, support both
|
||||
// In the future this will just be `createEncodedStreams`
|
||||
let receiverStreams = getInsertableStream(transceiver)
|
||||
const receiverStreams = getInsertableStream(transceiver)
|
||||
|
||||
// boolean controlled by checkbox to enable/disable encryption
|
||||
let applyDecryption = true
|
||||
@@ -24,8 +24,8 @@ window.toggleDecryption = () => {
|
||||
// Loop that is called for each video frame
|
||||
const reader = receiverStreams.readable.getReader()
|
||||
const writer = receiverStreams.writable.getWriter()
|
||||
reader.read().then(function processVideo({ done, value }) {
|
||||
let decrypted = new DataView(value.data)
|
||||
reader.read().then(function processVideo ({ done, value }) {
|
||||
const decrypted = new DataView(value.data)
|
||||
|
||||
if (applyDecryption) {
|
||||
for (let i = 0; i < decrypted.buffer.byteLength; i++) {
|
||||
@@ -41,7 +41,7 @@ reader.read().then(function processVideo({ done, value }) {
|
||||
// Fire when remote video arrives
|
||||
pc.ontrack = function (event) {
|
||||
document.getElementById('remote-video').srcObject = event.streams[0]
|
||||
document.getElementById('remote-video').style = ""
|
||||
document.getElementById('remote-video').style = ''
|
||||
}
|
||||
|
||||
// Populate SDP field when finished gathering
|
||||
@@ -54,7 +54,7 @@ pc.onicecandidate = event => {
|
||||
pc.createOffer().then(d => pc.setLocalDescription(d)).catch(log)
|
||||
|
||||
window.startSession = () => {
|
||||
let sd = document.getElementById('remoteSessionDescription').value
|
||||
const sd = document.getElementById('remoteSessionDescription').value
|
||||
if (sd === '') {
|
||||
return alert('Session Description must not be empty')
|
||||
}
|
||||
@@ -68,8 +68,8 @@ window.startSession = () => {
|
||||
|
||||
// DOM code to show banner if insertable streams not supported
|
||||
let insertableStreamsSupported = true
|
||||
let updateSupportBanner = () => {
|
||||
let el = document.getElementById('no-support-banner')
|
||||
const updateSupportBanner = () => {
|
||||
const el = document.getElementById('no-support-banner')
|
||||
if (insertableStreamsSupported && el) {
|
||||
el.style = 'display: none'
|
||||
}
|
||||
@@ -77,7 +77,7 @@ let updateSupportBanner = () => {
|
||||
document.addEventListener('DOMContentLoaded', updateSupportBanner)
|
||||
|
||||
// Shim to support both versions of API
|
||||
function getInsertableStream(transceiver) {
|
||||
function getInsertableStream (transceiver) {
|
||||
let insertableStreams = null
|
||||
if (transceiver.receiver.createEncodedVideoStreams) {
|
||||
insertableStreams = transceiver.receiver.createEncodedVideoStreams()
|
||||
@@ -88,7 +88,7 @@ function getInsertableStream(transceiver) {
|
||||
if (!insertableStreams) {
|
||||
insertableStreamsSupported = false
|
||||
updateSupportBanner()
|
||||
throw 'Insertable Streams are not supported'
|
||||
throw new Error('Insertable Streams are not supported')
|
||||
}
|
||||
|
||||
return insertableStreams
|
||||
|
Reference in New Issue
Block a user