В моем веб-приложении я получаю MediaStream
либо через getUserMedia
, либо через getDisplayMedia
. В определенных ситуациях видеодорожка этого потока может изменить свой размер. Например, если getDisplayMedia
отслеживает определенное окно, это окно может изменить размер. Или на мобильном устройстве при переключении из ландшафтного в портретный режим изображение с камеры будет повернуто на 90° (т.е. ширина и высота меняются местами).
Я знаю, как получить размеры MediaStream
(как описано здесь). Теперь я хочу получать уведомления всякий раз, когда размеры изменяются. Обратный вызов/событие какого-то рода.
Я уже пробовал MediaStream.onaddtrack
(предполагая, что, возможно, дорожка удалена и прочитана с другим размером), а также пробовал использовать MutationObserver
в элементе <video>
, в котором я показываю поток. Ни один из этих способов не сработал. Я также проверил MDN на наличие других событий, которые могли бы мне помочь, но я не нашел многообещающих.
Есть ли способ подписаться на изменения размера видеодорожки? Моя функция должна вызываться каждый раз при изменении размера. И если это невозможно, и мне нужно будет провести опрос занятости: есть ли умный способ сделать опрос немного менее загруженным?