私は現在、を使用する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) => {..});