Как отменить выбор DesktopMedia?

На моей веб-странице есть поток обмена экранами, параметры которого указаны ниже:

{
    audio: false,
    video: mandatory {
               chromeMediaSource: 'desktop',
               chromeMediaSourceId: IM.screenSourceId
              ...
           }
     ...
}

Расширение My Chrome содержит следующий код в фоновом скрипте:

desktop_id = chrome.desktopCapture.chooseDesktopMedia (session, port.sender.tab, onAccessApproved);

При нажатии кнопки "Отмена" на странице срабатывает функция прослушивания в фоновом скрипте:

chrome.desktopCapture.cancelChooseDesktopMedia (desktop_id);

В chrome://extensions из console.log видеть desktop_id на самом деле это целочисленное значение 1,

Но, похоже, не работает, я пробовал много версий Chrome, но все равно не работает, что мне делать, чтобы отменить совместное использование экрана?

1 ответ

chrome.desktopCapture.cancelChooseDesktopMedia закрывает диалог выбора, если он все еще открыт. Он НЕ останавливает поток мультимедиа после того, как пользователь выбрал цель для записи.

Если вы хотите остановить запись экрана, позвоните в .stop() метод медиа потока вместо. Например

navigator.webkitGetUserMedia({
    audio: false,
    video: {
        mandatory: {
            chromeMediaSource: 'desktop',
            chromeMediaSourceId: IM.screenSourceId
        }   
    }   
}, function onSuccess(stream) {
    // Example: end the recording after 10 seconds.
    setTimeout(function() {
        stream.stop();
    }, 10000);
}, function onError() {
    // Handle error
}); 
Другие вопросы по тегам