Я начинающий в программировании, и мне с одноклассником (оба из 11 класса) нужно сделать проект, который будет чем-то напоминать демонстрацию экрана в скайпе, только на андроиде.
На данный момент я сделал сервер через протокол udp (через datagramsocket and datagrampacket). При первом приеме данных я "инициализирую нового пользователя", то есть присваиваю добавляю нового "клиента" в хеш таблицу с ключом, основаном на IP-адресе и порту клиента. Далее я принимаю от клиентов массив байтов, первый байт которого обозначает id "клиента" (мне пока что хватает 256 клиентов). Далее данные, которые нужно передать. Я, удаляя первый элемент массива, передаю его нужному "клиенту". Если интересно, вот код.
Я хочу узнать, как можно делать запись экрана андроид-устройства в реальном времени, используя Java, и передавать его через datagramsocket. Была идея делать много скриншотов и отправлять их, и я даже нашел, как это сделать, но в этом коде я понимаю только то, что он делает много скриншотов, и знаю, где он записывает эти скриншоты в Bitmap и вместе с этим сохраняет в файлы. Возможно, этот вариант неверный, или есть лучше? К тому же я столкнулся с тем, что я не смог быстро добавлять скриншоты в ImageView, приложение попросту вылетало (по этой же причине я не знаю, как часто делаются скриншоты в единицу времени). Еще мне кажется, что передача каждой картинки может оказаться медленной, также ее сжатие может замедлить программу.
В итоге, вот мои вопросы:
Как делать запись экрана андроид устройства и передавать их через datagramsocket? Оптимально ли делать отдельно каждый скриншот отдельно и передавать их? Если да, то как организовать видеотрансляцию? Как тогда правильно выбирать сжатие картинки, чтоб была наибольшая скорость? Также как передавать картинки, размер которых получился больше 64 кБ? Придется их разделять на несколько отправок, но тогда как понять, что 2 отправки являются одной картинкой, и понять в какой последовательности они были приняты?
P.S. Если нужно больше информации от меня, спрашивайте. Проект сдавать меньше, чем через месяц, поэтому нужно как можно быстрее все сделать, чтоб подготовить доклад и документацию.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, недавно столкнулся с проблемой: написал сервер tomcat, но работает он только на локалкеВ этом деле я новичок и хотел спросить,...
Есть задача отображения объекта внешнему классу, например массиваНо без возможности редактирования во внешнем классе Пример геттера
Собираю APK через эмулятор терминала Termux прямо на устройстве Android из-за отсутствия нормального ПКИспользую измененный мной скрипт с https://github