Я новичок в реакцииJS и пытаюсь построить компонент.Как передать веб-камеру на веб-страницу с помощью компонента js-ответа?
Я хочу создать базовую утилиту, в которой у меня есть видеокомпонент, который показывает канал живой веб-камеры, и была бы кнопка захвата, чтобы захватить и сохранить привязку фида на диск. Я хочу, чтобы это было в одном компоненте (видео подачи + кнопка захвата)
Этот код потоков фид в браузере, но я хочу его в компоненте,
<body>
<div id="container">
<video autoplay="true" id="videoElement">
</video>
</div>
<script>
var video = document.querySelector("#videoElement");
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia({video: true}, handleVideo, videoError);
}
function handleVideo(stream) {
video.src = window.URL.createObjectURL(stream);
}
function videoError(e) {}
</script>
</body>
</html>
Это прекрасно работает, но не это не компонент.
Я попробовал следующее reaact JS, но это не работает:
<body>
<div id="container">
</div>
<script type="text/jsx">
var MyComponent = React.createClass({
handleVideo: function(stream) {
video.src = window.URL.createObjectURL(stream);
},
videoError: function() {
},
render: function() {
var video = document.querySelector("#videoElement");
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia({video: true}, this.handleVideo, this.videoError);
}
return <div>
<video autoplay="true" id="videoElement">
</video>
</div>;
}
});
React.render(<MyComponent />, document.getElementById('container'));
</script>
</body>
Ошибка в handleVideo()
ReferenceError: видео не определен.
Мое понимание ошибки,
, так как тег видео приходит в более поздней части (взамен), он пытается использовать перед определением в функции handleVideo. Я смущен, как сделать эту работу.
Спасибо!
я не включил это в моем ответе, так как это на самом деле не часть ответа, но это выглядит как из кода, который вы ставите ваш React кода в соответствии с вашим HTML. JSX предназначен для использования в файлах Javascript, и, хотя вы * можете * поместить его в свой HTML, вы, вероятно, получите больше успеха, сохраняя свой код компонента в отдельном файле. Ваша IDE не будет смущена двумя синтаксисами, подобными HTML, в том же файле, будет проще использовать такие инструменты, как Babel, для преобразования вашего JSX в дружественный браузер JS и т. Д. – machineghost
Спасибо, Я планирую поставить код реакции в другом файле, но я думал, что могу сначала запустить треск, а затем создать дополнительную функциональность с отдельными файлами. Я просто изучаю с помощью Youtube видеоуроков, и вот как я начал, улучшив код в том же файле. :) –