Uzak Sesi ve Videoyu Görüntüleme
Uygulamanızda bağlı eşlerden gelen uzak ses ve video akışlarını alma ve görüntüleme mantığını uygulayın.
Uzak Sesi ve Videoyu Görüntüleme, CoddyKit'te ücretsiz bir Real-Time Streaming Systems (WebRTC + Live Data) dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Real-Time Streaming Systems (WebRTC + Live Data) öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Real-Time Streaming Systems (WebRTC + Live Data) kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
See and Hear Others
WebRTC enables direct communication, but how do we actually see and hear what a remote peer is sending?
- We'll learn how to capture incoming audio/video data.
- Then, how to display this data in your web application using standard HTML elements.
- This is crucial for building video calls, live streaming, and more!
The 'ontrack' Event
When a remote peer sends a media stream, your RTCPeerConnection needs to know about it. This is handled by the ontrack event.
- The
ontrackevent is triggered on yourRTCPeerConnectionobject. - It fires when a new
MediaStreamTrack(like an audio or video track) is received from the remote peer. - This event is your gateway to accessing the remote media.
Accessing Remote Streams
The ontrack event provides an event object (let's call it event) that contains important information:
event.track: The individualMediaStreamTrack(e.g., a single video track or audio track).event.streams: An array ofMediaStreamobjects. Typically, the first item (event.streams[0]) contains the full remote stream with all its tracks.
We usually work with event.streams[0] to get the complete stream for display.
Display with 'srcObject'
Once you have the MediaStream from the remote peer, how do you show it?
HTML5 <video> and <audio> elements have a special property called srcObject.
- You can directly assign a
MediaStreamobject tovideoElement.srcObject. - This property tells the media element to play the stream without needing to create a temporary URL.
- It's the modern and preferred way to display streams.
Dynamic Media Elements
For WebRTC, you often don't have a fixed number of video elements. You'll create them on the fly as peers connect:
Use document.createElement() to create new <video> or <audio> tags.
const videoElement = document.createElement('video');
// ... set attributes and append to DOM ...These elements can then be styled and added to your page layout.
Code: Attach a Stream to Video
This example shows how to get a local camera stream and attach it to a dynamically created video element using srcObject. This is exactly how you'd attach a remote stream after receiving it via ontrack!
const videoContainer = document.getElementById('videos') || document.body;
function displayStream(stream) {
const video = document.createElement('video');
video.autoplay = true;
video.playsinline = true;
video.width = 300;
video.height = 200;
video.style.border = '2px solid blue';
video.style.margin = '5px';
videoContainer.appendChild(video);
video.srcObject = stream; // Attach the stream
console.log('Stream attached to video element.');
}
// Simulate getting a stream (e.g., from getUserMedia or ontrack)
navigator.mediaDevices.getUserMedia({ video: true, audio: false })
.then(localStream => {
console.log('Got local stream. Displaying...');
displayStream(localStream);
})
.catch(e => {
console.error('Error getting stream:', e);
const errorMessage = document.createElement('p');
errorMessage.innerText = 'Error: ' + e.message + '. Make sure camera is allowed.';
videoContainer.appendChild(errorMessage);
});Handling Audio-Only Streams
The process for displaying remote audio-only streams is very similar:
- Instead of
document.createElement('video'), usedocument.createElement('audio'). - Assign the
MediaStreamtoaudioElement.srcObject. - Audio elements are typically invisible, so no need for width/height styling.
The browser will play the audio in the background once the stream is attached.
Multiple Peers, Multiple Streams
In a multi-party call, you'll receive streams from several remote peers. Each peer's stream needs its own display:
- Every time an
ontrackevent fires for a new remote stream, create a new<video>or<audio>element. - Assign the incoming
event.streams[0]to that new element'ssrcObject. - You might use a unique ID for each peer to manage their respective media elements.
Essential Media Attributes
When creating media elements for WebRTC, some attributes are vital:
autoplay: Ensures the media starts playing automatically.playsinline: Crucial for iOS devices to play video directly within the browser, not fullscreen.muted: Often used for your local video preview to prevent echo, but usually unmuted for remote videos.controls: (Optional) Displays browser's default play/pause, volume controls.
Quick Check: Displaying Streams
You've successfully received a MediaStream from a remote peer. Which HTML property should you use to display this stream in a <video> element?
Recap: See & Hear
Great job! You've learned how to bring remote audio and video into your WebRTC application:
- The
ontrackevent onRTCPeerConnectionnotifies you of incoming media. - You access the
MediaStreamviaevent.streams[0]. - Assign this stream to an HTML
<video>or<audio>element'ssrcObjectproperty for display. - Remember essential attributes like
autoplayandplaysinlinefor smooth playback.
Now you can truly see and hear your connected peers!
Sıkça Sorulan Sorular
“Uzak Sesi ve Videoyu Görüntüleme” dersi ücretsiz mi?
Evet — “Uzak Sesi ve Videoyu Görüntüleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Real-Time Streaming Systems (WebRTC + Live Data) kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Real-Time Streaming Systems (WebRTC + Live Data) kursu toplamda 4 dersten oluşur.
“Uzak Sesi ve Videoyu Görüntüleme” dersinde ne öğreneceğim?
Uygulamanızda bağlı eşlerden gelen uzak ses ve video akışlarını alma ve görüntüleme mantığını uygulayın. Real-Time Streaming Systems (WebRTC + Live Data) ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Real-Time Streaming Systems (WebRTC + Live Data) öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Real-Time Streaming Systems (WebRTC + Live Data), başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Uzak Sesi ve Videoyu Görüntüleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Real-Time Streaming Systems (WebRTC + Live Data) dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Real-Time Streaming Systems (WebRTC + Live Data) dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Kullanıcı Medya Cihazlarına Erişim
- Medya Parçalarını Ekleme ve Kaldırma
- Uzak Sesi ve Videoyu Görüntüleme
- Medya Kalitesini ve Kısıtlamaları Denetleme