如何获取 Agora io 屏幕共享取消事件?

Cod*_*ver 5 screensharing cancellation agora.io

我正在使用 agora io 进行视频通话和屏幕共享。屏幕共享工作正常。但问题是当我取消屏幕共享时,流不显示。但加入仍然活跃。我需要捕获屏幕共享的取消事件。我已阅读该文档,但没有关于取消事件的线索。您能帮忙取消活动吗?提前谢谢。

Sun*_*nny 5

    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)


Her*_*mes 0

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