var video = document.querySelector("video");
var constraints = {audio: false, video: true};
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
function successCallback(stream)
{
window.stream = stream; // stream available to console
if (window.URL)
{
video.src = window.URL.createObjectURL(stream);
} else
{
video.src = stream;
}
}
function errorCallback(error)
{
console.log("navigator.getUserMedia error: ", error);
}
navigator.getUserMedia(constraints, successCallback, errorCallback);
Hi I am working on webrtc example code of getUserMedia and getting an error: Uncaught TypeError: Cannot set property 'src' of null
I looked into the inspect element and found the
video.src
is turning out to be 'null' while
window.URL.createObjectURL(stream)
does have value of "blob:http%3A//danielle/738c6a8e-c887-4bd2-8b3d-3e3a18e6ac1f"
I can see an object in 'stream' object as well.
I don't know why it's not passing that value to video.src
Can anyone see any reason in code?
I got this code from http://googlechrome.github.io/webrtc/samples/web/content/getusermedia/
I actually copied exactly the same code from that link.
Here is my HTML code
<html>
<head>
<base target="_blank">
<title>getUserMedia</title>
<link rel="stylesheet" href="main.css">
<script src="main.js"></script>
</head>
<body>
<div id="container">
<video controls style="border: 1px solid rgb(14, 168, 234); width: 90%;"></video>
</div>
</body>
</html>
Couple of things
Here are my suggested changes that work:
<html>
<head>
<base target="_blank">
<title>getUserMedia</title>
<link rel="stylesheet" href="main.css">
</head>
<body>
<div id="container">
<video controls style="border: 1px solid rgb(14, 168, 234); width: 90%;" autoplay></video>
</div>
<script src="main.js"></script>
</body>
</html>
谷歌浏览器会阻止 http 中的视频和音频设备访问,因此请确保您使用的是 https 协议,然后您将获得 navigator.getUserMedia() 工作
I am quite sure that you are missing a video tag in you html code, add a line like this
<video controls style="border: 1px solid rgb(14, 168, 234); width: 90%;"></video>
to your HTML code. You can also read https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector#Notes
EDIT:
If you don't want to use jquery ($(document).ready()), wrap your javascript code with this
document.addEventListener("DOMContentLoaded", function() {
/*your js code here*/
});
You are getting the null error because you are querying for a video tag before the DOM get loaded, so the element does not exist.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.