2017-09-15 37 views
2

我正在使用twilio API在emberjs应用程序中实现屏幕共享,我成功地能够共享屏幕并切换停止它。这里是我的代码 - >如何在emberjs中的chrome浏览器中获取停止共享按钮的处理程序

this.get('detectRtc').isChromeExtensionAvailable(available => { 
    if (available) { 
     const { twilioParticipant } = this.get('participant') 

     if (this.get('stream') && this.get('stream').active) { 
     this.get('streamTrack').stop() 
     this.get('userMedia.mediaStream') 
     .removeTrack(this.get('streamTrack')) 
     this.set('isEnabled', false) 
     twilioParticipant.removeTrack(this.get('streamTrack')) 
     } else { 
     this.get('detectRtc').getSourceId(sourceId => { 
      // "cancel" button is clicked 
      if (sourceId !== 'PermissionDeniedError') { 
      // "share" button is clicked extension returns sourceId 
      this.get('userMedia') 
      .getScreen(sourceId) 
      .then(mediaStream => { 
       this.set('isEnabled', true) 
       this.set('stream', mediaStream) 
       this.set('streamTrack', mediaStream.getVideoTracks()[0]) 
       twilioParticipant.addTrack(mediaStream.getVideoTracks()[0]) 
      }) 
      .catch(() => { /* do nothing, but return something */ }) 
      } 
     }) 
     } 
    } else { 
     this.get('flash').status(
     'base', 
     this.get('intl').t('chromeExtension.install'), 
     { 
      icon: 'alert-circle', 
      push: true 
     } 
    ) 
     // TODO Show the system popup to install chrome extension from web store 
     // !!chrome.webstore && 
     // !!chrome.webstore.install && 
     // chrome.webstore.install(this.webStoreUrl) 
    } 
    }) 

我现在面临的问题是与停止共享按钮,在应用程序的底部,与截图看到下面 enter image description here

我需要一种方法来听到一个事件处理程序并在点击停止共享屏幕按钮后执行一些代码,我知道MediaStreamTrack文档中提到了一个事件处理程序,但我不知道如何使用它,任何帮助都会非常高赞赏。

https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack

回答

1

的 “停止共享” 按钮,将触发MediaStreamTracks '结束' 事件。试试这个: mediaStream.getVideoTracks()[0].addEventListener('ended',() => console.log('screensharing has ended'))

相关问题