我想在单击按钮时设置权限。我想要这样的场景。首先,方法首先起作用并允许按下按钮。
我的代码:
<button
onClick={requestPermission}
className=" ring-1 hover:bg-blue-500 transition-all duration-300 active:bg-blue-600 rounded-lg px-4 py-2 text-xl font-semibold text-white bg-blue-700 flex items-center " >
<span className="mr-4">İzin ver</span>{" "}
<FontAwesomeIcon icon={faVideoCamera} />
</button>
// Permissions
const requestPermission = useCallback(async () => {
console.log("bu func. calisti");
try {
const stream = await navigator.mediaDevices.getUserMedia({
video: true,
audio: true,
});
webcamRef.current.srcObject = stream;
setPermissionGranted(true);
} catch (error) {
if (!hideQuestion) {
console.error("Webcam ve mikrofon izni reddedildi:", error);
toast.warn("Lütfen Webcam İzinlerini Veriniz...");
}
setPermissionGranted(false);
}
}, [hideQuestion]);
useEffect(() => {
requestPermission();
}, []);
将视频/音频权限设置为“已授予”状态的唯一方法是尝试调用 getUserMedia。这是为了击败网络怪人。您无法保存状态并稍后通过 Javascript 代码恢复它。
某些浏览器(但不是全部)(尤其是 iOS / iPadOS Safari)会保存每个网站来源的状态。