我正在开发一款允许用户拍摄地点照片的应用。但是,我只会启用后置摄像头。与此应用程序的情况一样,使用自拍相机拍摄照片(脸部相机)并不是一种很酷的体验(相信我)。
该应用程序不是原生的。它是android内的webview。指向特定地址的网站
我想知道如何阻止自拍相机'这个程序
我在AndroidManifest.xml中尝试了一些选项,但没有成功
因为我试图做的是错误地强迫面部相机。而不是阻止它。
关注我的AndroidManifest.xml
错误在于:
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.diego.android.crosswalkdemo" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
答案 0 :(得分:0)
您可以尝试使用 MediaStreamTrack.getSources() API选择特定的相机,根据&#34;面对&#34;获取前/后相机的ID。属性。
然后在传递给navigator.getUserMedia()API的约束对象中使用此ID来捕获该摄像头的输出。
var constraints;
MediaStreamTrack.getSources(function(sourceInfos) {
var videoSourceId = null;
for (var i = 0; i != sourceInfos.length; ++i) {
var sourceInfo = sourceInfos[i];
// find rear camera
if (sourceInfo.kind == "video" && sourceInfo.facing == "environment") {
videoSourceId = sourceInfo.id;
}
}
constraints = {
audio: false,
video: {
optional: [{sourceId: videoSourceId}]
}
}
});
navigator.getUserMedia(constraints,
function(stream) {
...
}
);