瀏覽代碼

Use then/catch

master
Roderic Day 5 年之前
父節點
當前提交
1ccf6bc182
共有 1 個檔案被更改,包括 10 行新增6 行删除
  1. +10
    -6
      pico.js

+ 10
- 6
pico.js 查看文件

}, },
getSelectedMedia: async () => { getSelectedMedia: async () => {
const stream = new MediaStream() const stream = new MediaStream()
const addTrack = stream.addTrack.bind(stream)


const muted = document.querySelector('#mute-check').checked const muted = document.querySelector('#mute-check').checked
if(!muted) { if(!muted) {
const audio = Media.audioDefaults const audio = Media.audioDefaults
const audioStream = await navigator.mediaDevices.getUserMedia({audio})
audioStream.getAudioTracks().forEach(track => stream.addTrack(track))
await navigator.mediaDevices.getUserMedia({audio})
.then(s => s.getAudioTracks().forEach(addTrack))
.catch(e => console.error(e))
} }


const source = document.querySelector('#media-source').value const source = document.querySelector('#media-source').value
if(source === 'camera') { if(source === 'camera') {
const video = {width: {ideal: 320}, facingMode: 'user', frameRate: 26} const video = {width: {ideal: 320}, facingMode: 'user', frameRate: 26}
const videoStream = await navigator.mediaDevices.getUserMedia({video})
videoStream.getVideoTracks().forEach(track => stream.addTrack(track))
await navigator.mediaDevices.getUserMedia({video})
.then(s => s.getVideoTracks().forEach(addTrack))
.catch(e => console.error(e))
} }
if(source === 'screen' && navigator.mediaDevices.getDisplayMedia) { if(source === 'screen' && navigator.mediaDevices.getDisplayMedia) {
const videoStream = await navigator.mediaDevices.getDisplayMedia()
videoStream.getVideoTracks().forEach(track => stream.addTrack(track))
await navigator.mediaDevices.getDisplayMedia()
.then(s => s.getVideoTracks().forEach(addTrack))
.catch(e => console.error(e))
} }


return stream return stream

Loading…
取消
儲存