#javascript #stream #getusermedia #mediastream
#javascript #поток #getusermedia #mediastream
Вопрос:
Я хочу управлять запущенным медиапотоком, изменяя дорожки на основе выбора пользователя, т.Е. Выбора микрофона.
Отсюда https://developer.mozilla.org/en-US/docs/Web/API/MediaStream/addTrack в нем упоминается, что мы можем добавить новый трек, но из API MediaStreamTrack https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack значение конструктора отсутствует, а также большинство свойств являются «Только для чтения». Просматривая более старые сообщения ранее здесь, в StackOverflow, я прочитал, что добавление новых дорожек не поддерживается, и я также прочитал, что дорожки создаются при доступе getUserMedia()
и запуске потока.
Вчера вечером я прочитал, что вы можете добавить несколько видео / аудиопотоков (но без примера), но я не уверен, как это настраивается и как я мог бы зацикливаться на том, как выложен код, т.е.,
navigator.mediaDevices.getUserMedia
({
audio: true,
video:
{
width: { min: 1280, ideal: 1920 },
height: { min: 720, ideal: 1080 }
}
})
как бы я прошел цикл с таким форматом (или как я могу установить формат другим способом, кроме этого), чтобы правильно настроить устройства? Имеет ли смысл иметь несколько видео / аудио дорожек, которые просто торчат?
Я также думал о том, чтобы переделать каждый поток, но это кажется пустой тратой ресурсов и не нужно, если я могу заставить работать другой способ.
Итак, мои вопросы.
-
Какие способы доступны / наилучшие способы изменения дорожек медиапотока во время запущенного медиапотока?
-
Возможно ли добавлять / удалять дорожки самостоятельно? Кажется, что добавление дорожек — это внутренний код, но обидно, что методы доступны нам, но, похоже, мы не можем их использовать. Кажется, что removeTracks будет работать с дорожками в MediaStream, просто кажется, что проблема с добавлением.
-
если мы не можем добавлять дорожки, могу ли я просто загрузить все дорожки и изменить их по своему усмотрению, а затем удалить все те, которые не нужны в конце?
Спасибо
Комментарии:
1. twilio.com/blog/2018/06/… Я должен был сделать что-то подобное в Twilio. В этой статье излагаются некоторые методы, которые они используют для этого. Некоторые из них связаны с их JavaScript SDK, поэтому вам может потребоваться разложить некоторые из них, чтобы получить доступ ко всем необходимым методам. То, что они делают с «присоединением» и «отсоединением» дорожек, вероятно, то, что вам нужно. Извините, у меня нет информации о том, как это сделать в Vanilla JS.
2. Спасибо, я в конечном итоге нашел решение, я ценю ваш вклад.
3. @user11116993 каким было ваше решение, не хотите поделиться?