2016-12-20 2 views
1

J'essaie de faire un portail d'examen en ligne. Lorsque les étudiants commencent l'examen, leur webcam démarre automatiquement et enregistre le flux en direct et le stocke sur le serveur. Les surveillants surveillent les élèves en direct ou peuvent regarder les diffusions en direct plus tard. J'ai recherché à ce sujet et trouvé WebRTC comme une solution possible avec un serveur de passerelle comme Kurento. Mais plus tard, découvert que WebRTC n'est pas pris en charge dans Safari, ce qui est un revers! Mon application devrait fonctionner avec succès dans le portail Web dans tous les navigateurs modernes, y compris Safari et aussi dans Android ou iPhone.Comment capturer un flux en direct de la caméra et regarder en direct ou sauvegarder pour une visualisation ultérieure?

Donc, quelqu'un peut-il suggérer une solution possible à mon problème? Quelle technologie dois-je utiliser qui peut supporter tous les navigateurs et OS?

En outre, il serait utile si vous pouvez fournir des liens vers une bonne documentation ou des tutoriels.

Répondre

0

WebRTC est un problème ... la capture de l'appareil photo avec getUserMedia en est une autre. Safari ne supporte pas non plus.

Il n'existe actuellement aucune API de capture vidéo dans Safari. La seule chose que vous pouvez faire est de créer une application native pour iOS.

Pire encore, en raison des politiques restrictives d'Apple, d'autres navigateurs, tels que Chrome, sont paralysés sur iOS car ils ne sont pas autorisés à utiliser leurs propres moteurs de navigation.

Utilisez des technologies basées sur des normes telles que getUserMedia et WebRTC pour votre application Web principale. Si vous décidez que l'économie de votre situation le permet, vous pouvez faire une application iOS pour travailler jusqu'à ce qu'Apple décide de participer aux standards modernes des navigateurs comme tout le monde.

+0

Salut Brad, je Il m'a fallu beaucoup de temps pour répondre, mais je faisais des recherches pendant tout ce temps. J'ai également atteint une impasse dans Chrome. getUserMedia ne fonctionne pas dans Chrome. Je ai googlé et a découvert que cela nécessite HTTPS maintenant. Alors, comment l'implémenter dans WebRTC? –

+0

@DebrajBiswas Oui, vous aurez besoin de HTTPS pour getUserMedia en dehors de localhost. – Brad

1

Vous pouvez utiliser Mediadevices.getUserMedia (https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) pour capturer le flux de la webcam sur le navigateur (chrome et firefox).
Pour jouer avec flux webcam en safari, vous devez utiliser un pollyfill - https://github.com/Temasys/AdapterJS

Pour enregistrer la vidéo/flux audio, vous pouvez utiliser l'enregistreur de médias api https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder
(Note: flux d'enregistrement est toujours un défi dans Safari, il n'y a pas de support/pollyfill, mais il fonctionne parfaitement sur les dernières versions de Chrome et Firefox).

manifestations utiles:

  • https://webrtc.github.io/samples/
  • https://mozdevs.github.io/MediaRecorder-examples/index.html
  • https://codepen.io/collection/XjkNbN/
  • https://hacks.mozilla.org/2016/04/record-almost-everything-in-the-browser-with-mediarecorder/
+0

Pour que l'enregistrement vidéo fonctionne sur Safari, il est peut-être utile d'explorer https://github.com/ronghanghu/webcamjs (Notez que le plugin flash doit être installé et activé) –