Cod*_*ver 5 screensharing cancellation agora.io
我正在使用 agora io 进行视频通话和屏幕共享。屏幕共享工作正常。但问题是当我取消屏幕共享时,流不显示。但加入仍然活跃。我需要捕获屏幕共享的取消事件。我已阅读该文档,但没有关于取消事件的线索。您能帮忙取消活动吗?提前谢谢。
If you are using agora web sdk ng library then you can detect this by using track-ended event.
We can create screen track using createScreenVideoTrack in this sdk.
step-1 call this method to create track
async shareScreen() {
const localScreenTrack = await AgoraRTC.createScreenVideoTrack();
return localScreenTrack;
}
step2- call event method after creating track.
To add event on this track create different method to handle event
shareScreenEvent(){
const track = this.shareScreen()
if (track) {
track.on('track-ended', () => {
console.log('track-ended');
console.log('you can run your code here to stop screen')
})
}
}
Run Code Online (Sandbox Code Playgroud)
Agora 的 Web SDK 没有提供任何方法来检测这一点,但由于 Agora Web SDK 基于 Web RTC,您可以利用该navigator对象和catch错误。
navigator.mediaDevices.getUserMedia(constraints).then(function success(stream) {
/* media access has been granted */
}).catch(function(err) {
//log to console first
console.log(err); /* handle the error */
if (err.name == "NotFoundError" || err.name == "DevicesNotFoundError") {
//required track is missing
} else if (err.name == "NotReadableError" || err.name == "TrackStartError") {
//webcam or mic are already in use
} else if (err.name == "OverconstrainedError" || err.name == "ConstraintNotSatisfiedError") {
//constraints can not be satisfied by avb. devices
} else if (err.name == "NotAllowedError" || err.name == "PermissionDeniedError") {
//permission denied in browser
} else if (err.name == "TypeError" || err.name == "TypeError") {
//empty constraints object
} else {
//other errors
console.log("Error: " + err.name);
}
});
Run Code Online (Sandbox Code Playgroud)
参考链接: https: //blog.addpipe.com/common-getusermedia-errors/
代码笔演示:https://codepen.io/naicuoctavian/pen/wPeZWO