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

Разработка на 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
дистанционно
договорная
Пожелания и особенности: Постфиксный калькулятор на java.
Москва
Фрилансеры
2025-03-02
Откликнуться
Разработка на Java
дистанционно
договорная
Ищу Java-разработчиков с опытом работы более 1 года. На созвоне хочу узнать, какой у Вас опыт, с какими проектами работали, какие применяли решения для тех или иных задач. Советы по написанию кода. Оплата - 1000 р/час. Формат - простая беседа.
Иркутск
Фрилансеры
2025-03-01
Откликнуться
Разработка на Java
дистанционно
договорная
Пожелания и особенности: Разработка таймтрекера. Пожелания и особенности: Разработка таймтрекера. Пожелания и особенности: Разработка таймтрекера.
Москва
Фрилансеры
2025-03-01
Откликнуться
Разработка на Java
дистанционно
договорная
Пожелания и особенности: Улучшение структуры кода приложения и добавление нескольких новых структур (приложение на подобии соц сети.). Пожелания и особенности: Улучшение структуры кода приложения и добавление нескольких новых структур (приложение на подобии соц сети.).
Москва
Фрилансеры
2025-02-28
Откликнуться
Разработка на Java
дистанционно
договорная
Необходимо пройти курс на Couresera https://www.coursera.org/learn/cryptocurrency/home/welcome, элементом зачета которого является домашнее задание в виде 3 заданий на Javа (в файлах). Необходимо выполнить все 3 задания чтобы получить сертификат об окончании курса. В кратчайшие сроки! (эта неделя) Задания вроде простые - эх как жаль что никто не знает языка.
Москва
Фрилансеры
2025-02-20
Откликнуться
Разработка на Java
дистанционно
договорная
Пожелания и особенности: Есть мод в майнкрафт, в котором нужно добавить новые слоты для текстур модельки к уже существующим, чтобы они были дополнительные, а не заменяющие те, что уже есть. Мод без исходного кода, уже пробовали такое другие люди делать давно, возможно. Но самостоятельно class файлы у меня не получается редактировать, нужна помощь с этим. О предложениях и ценах пишите, спасибо).
Москва
Фрилансеры
2025-02-19
Откликнуться
Разработка на Java
дистанционно
договорная
На текущий момент имеется лендинг, разработанный на JavaScript, который работает некорректно. Требуется выявить и исправить существующие проблемы, а также предоставить подробные инструкции для дальнейшего использования и поддержки. Требования: 1. Анализ текущего состояния: - Изучить исходный код лендинга, чтобы понять его структуру и функциональность. - Определить существующие ошибки и проблемы в работе. 2. Исправление ошибок: - Внести необходимые изменения в код. - Обеспечить корректное функционирование всех элементов и действий на лендинге. 3. Документация: - Предоставить полное решение проблемы с четкими указаниями по внесённым изменениям. - Написать инструкции по внедрению исправлений на лендинг. 4. Время выполнения: - Начало работы: немедленно. - Общая продолжительность работ: до 2 часов.
Москва
Фрилансеры
2025-02-16
Откликнуться