Dobra... zostawmy PHP WebSocket na chwilę, zanim wrócimy do niego z kredą i tablicą... Skoncentrujmy się na tym co tutaj... Procedura WebRTC...
Może zacznijmy od podstaw: MediaDevices.getUserMedia()
Kopiuj
navigator.mediaDevices.getUserMedia({ audio: true, video: false })
.then(function(stream) {
})
.catch(function(error) {
});
Czy możecie podać mi jakiś przykład co zrobić w dziale "do something with the stream"? Dziękuję. Pozdrawiam.
I może bardziej kompleksowe rozwiązanie, z ustawieniami parametrów audio:
Kopiuj
navigator.mediaDevices.getUserMedia({
audio: {
deviceId: 'your-microphone-device-id',
echoCancellation: true,
sampleRate: 44100
},
video: false
})
.then(function(stream) {
})
.catch(function(error) {
});
Pozwolę sobie przytoczyć co powiedział mi chat.openai.com Przytaczam to bo będę miał kilka pytań odnośnie poszczególnych etapów wyszczególnionych poniżej. Pojawia się jeszcze zagadnienie, jak skleić getUserMedia z... "procedurą" WebRTC. Hmm... no w takim razie zawieśmy się na chwilę nad tym co mamy. Oto co wypluł mi OpenAI :-)
Dołącz bibliotekę WebRTC do swojej aplikacji internetowej. Możesz to zrobić, dodając następujący tag skryptu do pliku HTML:
Kopiuj
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
Utwórz nowy obiekt RTCPeerConnection, aby nawiązać połączenie typu peer-to-peer. Obiekt RTCPeerConnection jest używany do zarządzania połączeniem i obsługi strumieni audio, wideo i danych.
Kopiuj
const pc = new RTCPeerConnection();
Dodaj nasłuchiwacze zdarzeń do obiektu RTCPeerConnection, aby obsłużyć różne etapy połączenia. Najważniejsze zdarzenia to onicecandidate, które jest wywoływane, gdy lokalny peer generuje kandydata ICE, oraz ontrack, które jest wywoływane, gdy otrzymano nowy ślad od zdalnego peer-a.
Kopiuj
pc.onicecandidate = function(event) {
};
pc.ontrack = function(event) {
};
Użyj metody createOffer(), aby utworzyć ofertę, którą można wysłać do zdalnego peer-a. Oferta zawiera informacje o możliwościach i preferencjach mediów lokalnego peer-a.
Kopiuj
pc.createOffer()
.then(function(offer) {
})
.catch(function(error) {
});
Gdy zdalny peer otrzyma ofertę, może utworzyć odpowiedź za pomocą metody createAnswer(). Odpowiedź zawiera informacje o możliwościach i preferencjach mediów zdalnego peer-a.
Kopiuj
pc.createAnswer()
.then(function(answer) {
})
.catch(function(error) {
Hmm... Teraz trzeba pomedytować trochę nad tym!