我正在使用 Twilio 服务来实现视频聊天。但是我遇到了这个错误。
DOMException: 无法启动视频源 android
我的代码如下所示。
var options = {};
var _this = this;
var browser = <any>navigator;
browser.getUserMedia = (browser.getUserMedia ||
browser.webkitGetUserMedia ||
browser.mozGetUserMedia ||
browser.msGetUserMedia);
browser.mediaDevices.enumerateDevices()
.then(devices => {
options = {
video: {},
audio: false
}
var isAudioInput = false;
var isAudioOutput = false;
devices.forEach(device => {
if (device.kind === "videoinput") {
var width = document.getElementById('main_participant').clientWidth;
var height = document.getElementById('main_participant').clientHeight;
options['video'] = { width, height };
} else if (device.kind === 'audioinput') {
isAudioInput = true;
} else if (device.kind === 'audiooutput') {
isAudioOutput = true;
}
})
if (isAudioInput && isAudioOutput) {
options['audio'] = true;
}
_this.createLocalMediaTracks(room.data, options); // This part is for create Twilio Room
});
createLocalMediaTracks(room, options) {
// Set Initial Device Status and set current status
this.audioStatus = options.audio;
this.videoStatus = options.video ? true : false;
this.initialStatus = options;
// Create Local Tracks with Device Status
createLocalTracks(options)
.then(localTracks => {
return connect(room.accessToken, {
name: room.roomName,
tracks: localTracks
})
}).then(room => {
this.room = room;
// Add LocalMediaTrack
this.participants.push("You");
this.room.localParticipant.tracks.forEach(publication => {
if (this.mainParticipant.index === 0) {
document.getElementById(`main_participant`).appendChild(publication.track.attach());
this.setFullSize("#main_participant video", true);
}
document.getElementById(`local-media`).appendChild(publication.track.attach());
this.setFullSize("#local-media video");
})
this.handleListen();
this.loading = false;
})
}
此代码在 Web 平台上运行良好。但不适用于移动平台。我在我的手机和安卓模拟器(Nox App Player)上测试了它。
现在我正在使用ANGULAR开发这个视频通话,而不是基于离子的。