Как отменить выбор 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
});