이 일을 code의이 종류를 얻을 사소한 : 허락을 받기 전에 MediaStream 카메라 및 마이크 레이블이 필요합니까?
const videoTracks = this.localStream.getVideoTracks();
const audioTracks = this.localStream.getAudioTracks();
if (videoTracks.length > 0)
this.trace('Using video device: ' + videoTracks[0].label);
if (audioTracks.length > 0)
this.trace('Using audio device: ' + audioTracks[0].label);
어떻게 장치를 선택하기 전에 어떻습니까?
navigator.mediaDevices
.enumerateDevices()
.then(this.gotDevices.bind(this))
.catch(this.alertsService.add.bind(this.alertsService));
}
gotDevices(deviceInfos: MediaDeviceInfo[]) {
this.mediaDeviceInfos = deviceInfos;
this.mediaDeviceInfos.forEach(device => {
if (device.kind === 'audioinput')
this.mics.push(device);
else if (device.kind === 'videoinput')
this.cams.push(device);
else
console.warn(`Unexpected: ${JSON.stringify(device)}`);
});
}
this.mediaDeviceInfos.some(dev => dev.label)
는 false
입니다.
const constraints: MediaStreamConstraints = {
audio: { advanced: [{ deviceId: mic.deviceId, groupId: mic.groupId }] },
video: { advanced: [{ deviceId: cam.deviceId, groupId: cam.groupId }] }
};
:
은 내가 여러 캠과 마이크를 지원하기 위해, 그래서처럼 사용하기 때문에 특정 장치가 여기에 선택해야합니다 그래서 나는 추한 내 입력에 dev.deviceId
을 사용해야합니다
내 카메라 및 마이크 용 레이블을 얻으려면 어떻게해야합니까? 사용자가 테마에서 선택할 수 있도록하려면 어떻게해야합니까?
'this.mediaDeviceInfos = deviceInfos;'에 '라벨'속성이있는 객체를 가져 오지 않습니까? – guest271314
예,하지만 Firefox 57.0b6 & 57.0b7 (64 비트)에서는 레이블이 항상 "" "'입니다. 잠깐만, 그냥 크롬을 확인하고 거기서 작동합니다. 흠 ... –
파이어 폭스 56.0.1 (64 비트)의'' "레이블도 확인했습니다. –