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

Разработка на 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

дистанционно
договорная
Пожелания и особенности: О проекте: Архитектура проекта подразумевает разделение на on-chain смарт-контракты и высокоскоростной off-chain торговый движок. Запуск разработки запланирован до августа. Кого я ищу? Мне нужен сильный Senior Backend Разработчик, который станет техническим ядром проекта. Ваша главная задача — разработка Trading Engine (исполнение ордеров, расчет P&L, трансляция котировок) с задержкой менее 100ms на ордер. Технологический стек: Node.js, TypeScript, Fastify; Настройка серверной архитектуры (Main VPS + Hot Standby VPS); Redis (кэш котировок, Pub/Sub для масштабирования); WebSocket-сервер для реалтайм-трансляции данных; Интеграции: CoinGecko Pro API, Pyth Network. Условия: Формат: Full-time, полная удаленка. Оплата: ориентировочно 3000 USD в месяц. Процесс найма: Я ценю ваше время. Никаких тестовых заданий, многочасовых лайв-кодингов и общения с HR. Я не технический специалист, поэтому процесс отбора простой. Если профиль подходит, мы созваниваемся, обсуждаем проект по существу и договариваемся о работе. Жду ваших откликов со ссылками на проекты или репозитории.
Москва Фрилансеры

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

дистанционно
договорная
Можно сделать процентов 70-90 от задачи.
Москва Фрилансеры

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

дистанционно
договорная
Java.
Москва Фрилансеры

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

дистанционно
договорная
Пожелания и особенности: Решение нужно будет сегодня, надо написать проект расшифровывать текста, есть задание и критерии.
Москва Фрилансеры

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

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

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

дистанционно
договорная
Нужно написать бек сайта на сайте нужно сделать 4 микра сервиса 1) Форма отправки на почту 2) Форма отправки на почту и фотографиями 3) БД с ручным заполнением 4) БД в ставкой в каталог и в идеале с парсенгом данных с другого сайта.
Москва Фрилансеры

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

дистанционно
договорная
Нужно выполнить 4 лабораторные работы по Java на тему программы-имитатора банкомата и подготовить по каждой лабораторной полноценный отчёт по требованиям преподавателя. Главный приоритет — правильное оформление отчёта по ТЗ преподавателя. Код может быть простым, но должен быть рабочим, понятным и с объяснением. Можно использовать нейронку. Код допускается простой, без лишнего усложнения. Главное, чтобы он соответствовал заданию, запускался и его можно было объяснить. Задания можно посмотреть по ссылке(в более удобном формате), а также прикрепил файлы. Ссылка: https://disk.yandex.ru/d/-ds9tgIqkH5zSw.
Москва Фрилансеры