Google Nest Cam Stream WebRTC не работает на iPhonePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Google Nest Cam Stream WebRTC не работает на iPhone

Сообщение Anonymous »

Я хотел бы получить прямую трансляцию со своей камеры. Аккумулятор Google Nest Cam Battery (новый). Для этого я использую WebRTC. Этот протокол поддерживается Google Nest Cam. Это работает на Android, ПК, но не на iPhone. Я попробовал RTCPeerConnection — Simplepeer. Но я не могу запустить трансляцию на iPhone.
Код, который я использую:

Код: Выделить всё




Camera - T-Construction




Voici la vue en direct de votre construction








const configuration = {
iceServers: [
{
urls: [
'stun:stun1.l.google.com:19302',
'stun:stun2.l.google.com:19302',
],
},
],
iceCandidatePoolSize: 10,
};

let peerConnection = null;
let remoteStream = null;

async function startFeed() {
peerConnection = new RTCPeerConnection(configuration);
const token = '';
const projectid = "";
const deviceid = "";

remoteStream = new MediaStream();
const videoElement = document.querySelector('#webCamVideo');
if (videoElement) {
videoElement.srcObject = remoteStream;
}

// Watch for new tracks from remote stream; add to video stream
peerConnection.ontrack = event => {
event.streams[0].getTracks().forEach(track => {
remoteStream.addTrack(track);
});
};

// Data Channel Required by the SDM API.
if (peerConnection.createDataChannel) {
peerConnection.createDataChannel("dataSendChannel");
}

try {
// Create the offer.
const offer = await peerConnection.createOffer({
offerToReceiveAudio: true,
offerToReceiveVideo: true
});
await peerConnection.setLocalDescription(offer);

// Safari doesn't respect the parameter requests of createOffer above, so let's fudge the offer ourselves! I mnot sure how to do
let offerSdp = offer.sdp;
offerSdp = offerSdp.replace('a=sendrecv', 'a=recvonly');

// Now, send request for SDP connection
const url = "https://smartdevicemanagement.googleapis.com/v1/enterprises/" + projectid + "/devices/"  + deviceid + ":executeCommand";
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
},
body: JSON.stringify({
"command": "sdm.devices.commands.CameraLiveStream.GenerateWebRtcStream",
"params": {
"offerSdp": offerSdp
}
})
};
const response = await fetch(url, options);

// Process the response.
const data = await response.json();
let answerSdp = data.results.answerSdp;

// Now start the feed using the answer
const answer = new RTCSessionDescription({ type: 'answer', sdp: answerSdp });
await peerConnection.setRemoteDescription(answer);
} catch (error) {
console.error("Error starting feed:", error);
}
}

// Call startFeed when the page is loaded.
window.addEventListener('load', startFeed);



Démarrer la vidéo


function startVideo(){
let canvas = document.createElement('canvas');
let video = document.getElementById('webCamVideo');

canvas.width = 768;
canvas.height = 432;

let ctx = canvas.getContext('2d');
ctx.drawImage( video, 0, 0, canvas.width, canvas.height );

var image = new Image();
image.src = canvas.toDataURL('image/jpeg'); // Convertir le canvas en format d'image
document.body.appendChild(image);
}




Мне нужна ваша помощь.
Как мне решить эту проблему?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/772 ... -in-iphone
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»