手机浏览器调用http页面时,无法打开摄像头
时间: 2023-06-27 10:03:36 浏览: 201
在移动设备上,浏览器要使用摄像头需要获得用户授权。您可以在 HTML5 中使用 `getUserMedia` API 获取用户授权并访问摄像头。下面是一个简单的示例代码:
```javascript
navigator.mediaDevices.getUserMedia({ video: true })
.then(function(stream) {
var video = document.querySelector('video');
video.srcObject = stream;
video.play();
})
.catch(function(error) {
console.log('getUserMedia error: ', error);
});
```
需要注意的是,该 API 目前不是所有浏览器都支持,您需要检查浏览器兼容性。另外,访问摄像头时,您也需要考虑用户隐私问题,确保用户能够知道并授权访问摄像头。
相关问题
手机浏览器如何在非https页面打开摄像头
### 回答1:
在非HTTPS页面中打开摄像头可能会存在安全隐患,因为这个操作需要访问设备的硬件资源,因此浏览器会限制此类操作。不过,有些浏览器可能允许你通过一些设置来允许在非HTTPS页面中打开摄像头。例如,Google Chrome浏览器可以通过启用“不安全内容”的选项来允许在非HTTPS页面中打开摄像头。但是,我建议你尽可能使用HTTPS页面来保护你的设备和数据安全。
### 回答2:
要在手机浏览器的非HTTPS页面上打开摄像头,必须使用以下步骤:
首先,确保你的手机浏览器支持摄像头访问。大部分主流浏览器都支持,在上网之前,检查一下浏览器设置可以确定。
然后,在你的非HTTPS页面上添加一个调用摄像头的按钮或链接。这可以通过使用HTML5中的getUserMedia方法来实现。在按钮的点击事件中,使用相应的JavaScript代码来调用摄像头。
接下来,在调用getUserMedia方法之前,确保用户已经授权浏览器访问摄像头。这可以通过使用浏览器提供的getUserMedia方法来实现。在用户同意授权后,浏览器会返回一个包含摄像头视频流的对象。
最后,使用JavaScript将视频流显示在你的非HTTPS页面上。你可以创建一个HTML5的video元素,在JavaScript中将视频流附加到该元素上,并通过设置其属性来播放视频。
需要注意的是,在非HTTPS页面上打开摄像头存在一些安全隐患。HTTPS页面提供了更高的安全性和数据保护,因此建议尽量在HTTPS页面中进行摄像头访问。同时,用户还需保持警惕,以防止个人隐私泄露。
javafx 打开webrtc无法调用摄像头
在 JavaFX 中打开 WebRTC 并访问摄像头需要使用嵌入式浏览器,比如 WebView,因为 JavaFX 并没有直接提供访问摄像头的 API。你需要使用 WebView 将 WebRTC 页面嵌入到 JavaFX 应用程序中,并在 WebRTC 页面中访问摄像头。
以下是一个简单的示例代码,用于在 JavaFX 应用程序中打开 WebRTC 并访问摄像头:
```java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebRTCTest extends Application {
@Override
public void start(Stage primaryStage) {
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
// 加载 WebRTC 页面
webEngine.load("https://webrtc.github.io/samples/src/content/getusermedia/gum/");
Scene scene = new Scene(webView, 640, 480);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
在这个示例中,我们加载了一个 WebRTC 页面,该页面会访问摄像头。你可以根据需要修改该页面的 URL。当你运行这个示例时,应该可以看到嵌入的 WebRTC 页面,并且可以访问摄像头。