Вход Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Уход за животными
Тренеры
Автоинструкторы

Разработка на Java — удалённая работа в Москве

Дата: 2025-02-12
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-02-12
Описание
Необходимо внести небольшие изменения в код. Необходимо изменить или на оборот доработать перый этап входа Аппка не запускается пока не выберешь камеру на телефоне, после чего загружается аппка и уже телефон запрашивает доступ к камере. Нужно: - либо убрать этап выбора камеры и назначать заднюю камеру по дефолту (соответсвенно чтоб страница запускалась с loader bar и запрос на доступ к камере, после чего инициализация камеры) - либо подключить выбор методов user и environment в соответствии с выбором пользователя, так как сейчас стоит метод environment и при выборе камеры переднего вида, включается все равно задняя var initialize = async() =>{ var unityCanvas = document.querySelector(“#unity-canvas“); var videoCanvas = document.querySelector(“#video-canvas“); window.arCamera = new ARCamera(unityCanvas, videoCanvas); window.iTracker = new ImageTracker(arCamera); try{ await window.iTracker.initialize(); console.log(“ImageTracker initialized!“); } catch{ console.error(“Failed to initialize ImageTracker. Are you missing opencv.js? “ + error); ShowError(“Failed to initialize the experience.“); return; } await LoadWebcams(); document.getElementById(“startARButton“).style.display = “block“; } initialize(); var container = document.querySelector(“#unity-container“); var canvas = document.querySelector(“#unity-canvas“); var loadingBar = document.querySelector(“#unity-loading-bar“); var progressBarFull = document.querySelector(“#unity-progress-bar-full“); function StartAR() { canvas.style.width = window.innerWidth + “px“; canvas.style.height = window.innerHeight + “px“; document.getElementById(“startARDiv“).style.display = “none“; createUnityInstance(document.querySelector(“#unity-canvas“), { dataUrl: “Build/AR Arts.data“, frameworkUrl: “Build/AR Arts.framework.js“, codeUrl: “Build/AR Arts.wasm“, streamingAssetsUrl: “StreamingAssets“, companyName: “DefaultCompany“, productName: “AR Web“, productVersion: “0.1“, //webglContextAttributes: { “preserveDrawingBuffer“: true }, // matchWebGLToCanvasSize: false, // Uncomment this to separately control WebGL canvas render size and DOM element size. // devicePixelRatio: 1, // Uncomment this to override low DPI rendering on high DPI displays. }, (progress) => { progressBarFull.style.width = 100 * progress + “%“; } ).then((unityInstance) => { window.unityInstance = unityInstance; RequestWebcam(); loadingBar.style.display = “none“; }); loadingBar.style.display = “block“; } //Set Facing Mode here ('environment', 'user', '') window.unityFacingMode = “environment“ window.WEBCAM_SETTINGS = { video: { facingMode: unityFacingMode, }, audio: false }; window.requestingForPermissions = false; async function RequestWebcam(){ window.requestingForPermissions = true; try{ window.webcamStream = await navigator.mediaDevices.getUserMedia(window.WEBCAM_SETTINGS); console.log(“Webcam access granted“); requestingForPermissions = false; } catch (err) { //user denied camera permission - show error panel console.error(“getUserMedia error - “ , err); ShowError(“Failed to start the experience. Camera permission was denied“); window.requestingForPermissions = false; } } async function StartWebcam(){ console.log(“StartWebcam“) while (window.requestingForPermissions) { // Wait until requestingForPermissions becomes true. console.log(“Waiting for permissions...“); await new Promise(resolve => setTimeout(resolve, 100)); // Adjust the delay time as needed. } console.log(“Got Permissions“); if(window.webcamStream) { const video = document.querySelector(“#webcam-video“); video.srcObject = webcamStream; try { await arCamera.startWebcam(video); console.log(“Webcam started successfully“); window.unityInstance.SendMessage('ARCamera', 'OnStartWebcamSuccess'); } catch(err){ console.error(“Webcam failed to start - “, err); window.unityInstance.SendMessage('ARCamera', 'OnStartWebcamFail'); } } else{ console.error(“Webcam failed to start - permission not yet granted“); window.unityInstance.SendMessage('ARCamera', 'OnStartWebcamFail'); } } async function LoadWebcams(){ let camDevices = []; // let backCams = []; let devices = await navigator.mediaDevices.enumerateDevices(); var ctr = 0; devices.forEach(mediaDevice => { if (mediaDevice.kind === 'videoinput') { if(window.unityFacingMode == 'environment' && !mediaDevice.label.includes('facing front')){ //back cam only camDevices.push(mediaDevice); } else if(window.unityFacingMode == 'user' && mediaDevice.label.includes('facing front')){ //front cam only camDevices.push(mediaDevice); } else{ //back and front camDevices.push(mediaDevice); } ctr++; } }); var select = document.getElementById(“chooseCamSel“); select.style.display = “block“; var count = 0; //reverse array because some Android phones can't distinguish front and back cams at first load //and when this happens, most of the time, front cam goes first and back cam goes last camDevices = camDevices.reverse(); camDevices.forEach(mediaDevice => { const option = document.createElement('option'); option.value = mediaDevice.deviceId; let label = `Camera ${count}`; if (mediaDevice.label) { label = mediaDevice.label } const textNode = document.createTextNode(label); option.appendChild(textNode); select.appendChild(option); count++; }); iTracker.WEBCAM_NAME = select.options[select.selectedIndex].innerHTML; } function SelectCam(){ var select = document.getElementById(“chooseCamSel“); window.deviceId = select.value; window.WEBCAM_SETTINGS.video['deviceId'] = deviceId; //console.log(window.WEBCAM_SETTINGS); iTracker.WEBCAM_NAME = select.options[select.selectedIndex].innerHTML; } async function FlipCam(){ arCamera.stopWebcam(); window.WEBCAM_SETTINGS.video.deviceId = ''; if(window.WEBCAM_SETTINGS.video.facingMode == 'user'){ window.WEBCAM_SETTINGS.video.facingMode = 'environment'; arCamera.setFlipped(false); } else{ window.WEBCAM_SETTINGS.video.facingMode = 'user'; arCamera.setFlipped(true); } window.webcamStream = await navigator.mediaDevices.getUserMedia(window.WEBCAM_SETTINGS); const video = document.querySelector(“#webcam-video“); video.srcObject = webcamStream; await arCamera.startWebcam(video); } function ShowError(error){ document.getElementById(“errorDiv“).style.display = “flex“; document.getElementById(“errorText“).innerHTML = error; } function ShowScreenshot(dataUrl){ document.getElementById(“screenshotDiv“).style.display = “flex“; document.getElementById(“screenshotImg“).src = dataUrl; document.getElementById(“screenshotImg“).style.width = “80vw“; document.getElementById(“screenshotImg“).style.height = 80 / window.innerWidth * window.innerHeight + “vw“; } function ShowConfirmUrl(url){ document.getElementById(“confirmUrlDiv“).style.display = “flex“; window.newUrlString = url; document.getElementById(“confirmUrlText“).innerText = “Are you sure you want to visit “ + url; } window.ITRACKER_GLOBALS = { //place global settings here INTERNAL_SMOOTHFACTOR_POS: .075, }.
Похожие заказы

Разработка на Java

дистанционно
договорная
Привет, я пишу апи тесты и нужно дергать запросы апишками,пейлоады большие и возникают ошибки(ответы некорректные ,null итд) задача сложная и муторная нужна помощь опытного разработчика Язык Java.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Привет,сразу скажу что нужна помощь ИСКЛЮЧИТЕЛЬНО ОЧНАЯ(личные встречи) потому что компания запрещает подключаться через телемост сторонним людям я пишу апи тесты и нужно дергать запросы апишками,пейлоады большие и возникают ошибки(ответы некорректные ,null итд) Могу приехать к вам(кафе итд) для решения вопроса Язык Java.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Пожелания и особенности: Хочу чтобы обучили алгоритмам чтобы код можно было свободно писать не прибегая к ии и лишнему гугливанию.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Cоздание чита для minecraft требования: обширный функционал похожий на чит sigma 5.0(исходники есть на github), обходимость таких серверов как hypixel(полная).
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Нужен сайт для продажи композиций из сухоцветов. По сути, лендинг с несколькими страницами: на главной логотип и кнопки Наши работы, Композиции в наличии, Заказать и т.д. Каждая ведёт на свою страницу, контент уже готов, останется только сверстать. На всех страницах должны быть кнопка Заказать и ссылки на Телеграм и на партнёрский магазин Флау Вау. Дизайн минималистичный и адаптив под телефон обязателен.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Пожелания и особенности: Java-разработчик (Middle) с экспертизой в 1С (опыт более 15 лет), Full-Stack специалист.
Москва Фрилансеры

Разработка на Java

дистанционно
договорная
Пожелания и особенности: Разработка VPN.
Москва Фрилансеры