/ / Chrome DesktopCapture APIで「共有の停止」クリックをリッスンする方法-javascript、google-chrome、google-chrome-extension、webrtc

Chrome DesktopCapture APIで「共有を停止」クリックをリッスンする方法-javascript、google-chrome、google-chrome-extension、webrtc

私は現在、を使用するChrome拡張機能を書いています ChromeのDesktopCaptureAPI。誰かが「共有を停止」をクリックしたときにコールバックを設定するのに苦労しています。

スクリーンショットの共有を停止する

私は onended EventHandler MediaStreamの、しかしMediaStreamの ended プロパティはまだに設定されています true ボタンをクリックした後。

ストリーム間(ボタンをクリックする前とクリックした後)で見つけた唯一の違いは、 videoTracks.readyState に設定されています ended.

編集: また、ユーザーが以前にストリーミングしていたウィンドウを閉じたかどうかにも注意したいと思います。

回答:

回答№1の13

にEventHandlerを割り当てることで、この問題を解決しました videoTrackの onended プロパティ:

  // somebody clicked on "Stop sharing"
stream.getVideoTracks()[0].onended = function () {
// doWhatYouNeedToDo();
};

私の編集に関する限り(ウィンドウが閉じていることに気づきます):イベントも発生します。


回答№2の場合は0
stream.onended = () => { // Click on browser UI stop sharing button
console.info("Recording has ended");
};

ストリームはどこで入手できますか? adapter.jsの使用(ブラウザー間でユニバーサルPromiseベースのAPIを作成):

navigator.mediaDevices.getUserMedia(..).then((stream) => {..});