addTrack()
говорящийaddTrackПрежде чем мы узнаемaddStream()метод
- addStream() Устаревший, официально признан устаревшим
положитьMediaStreamЛокальный источник аудио или видео, добавляемый в объект потока однорангового соединения WebRTC. Официально рекомендуется использовать другой методaddTrack
RTCPeerConnection.addTrack( ) добавляет новую медиадорожку в набор дорожек, которая будет передана другому узлу
navigator.mediaDevices.getUserMedia({ audio: true, video: true }).then(async (stream: any) => {
for (const track of stream.getTracks()) {
this.webPeer.addTrack(track);
}
Вышеприведенный код: Добавьте аудио- и видеопотоки камеры пользователя в соединение, а затем отправьте предложение, содержащее объект SDP (объект SDP содержит соответствующие параметры текущего аудио и видео), в службу сигнализации.
правильноRTCPeerConnectionСтуденты, интересующиеся процессом подключения, могут обратиться к этой статьеnuggets.capable/post/684490…
Если вы занимаетесь продуктами, связанными с аудио- и видеочатами, тоaddTrackЭто как раз соответствует вашим потребностям, ведь вам нужно использовать камеру и микрофон пользователя (браузер запросит у пользователя авторизацию). Но вы хотите создавать только аудио- и видеодорожки, и вам не нужно использовать камеры и микрофоны, так что же нам делать?
addTransceiver()
addTransceiverсоздать новыйRTCRtpTransceiverи добавьте его в набор приемопередатчиков, связанный сRTCPeerConnection. Каждый трансивер представляет собой двунаправленный поток сRTCRtpSenderа такжеRTCRtpReceiver.
грамматика
let rtcTransceiver = RTCPeerConnection .addTransceiver(trackOrKind,init);
- trackOrKind: MediaStreamTrackбыть связанным с приемопередатчиком, илиDOMStringОн используется в качестве своего рода приемникаtrack
Здесь видео трек по биографии»video", звуковая дорожка перенесена"audio"
- init:Необязательный параметр. следующим образом:
направление:Предпочтительная направленность трансивера. Это значение используется для инициализации новыхRTCRtpTransceiverобъектRTCRtpTransceiver.directionАтрибуты.
sendEncodings:Список кодировок, разрешенных при отправке мультимедиа RTPRTCRtpSender. каждая запись является типомRTCRtpEncodingParameters.
streams: MediaStreamСписок объектов для добавления в трансиверRTCRtpReceiver; когда удаленный узелRTCPeerConnectionизtrackКогда происходит событие, это потоки, которые будут указаны событием.
Например:Добавьте односторонний трансивер потокового аудио и видео.
this.rtcPeerConnection.addTransceiver("video", {
direction: "recvonly"
});
this.rtcPeerConnection.addTransceiver("audio", {
direction: "recvonly"
});
Приведенный выше код будет получать только аудио- и видеопотоки, отправленные одноранговой стороной, и не будет передавать свои собственные аудио- и видеопотоки на одноранговую сторону.
direction:
до свидания
Если у вас есть вдохновение, пожалуйста, нажмите «Нравится», чтобы поддержать, спасибо~
обновить содержимое:
обращать вниманиеaddTransceiverПроблема совместимости, эта функция не поддерживается в ios и mac safari, если вы хотите быть совместимым с сеансом соединения webrtc в safari, вы можете инициировать сеанс сигнальным сервером. Обратитесь к обратному процессу webrtc в следующей статье: