Трансляция экрана android studio

Вывод экрана Android на компьютер

Хотя это не ежедневная задача, время от времени, может понадобиться вывести экран Android на экран своего компьютера. Это может понадобиться для просмотра фото или видео с смартфона на экране компьютера, разработки без использования устройства, или просто в качестве зеркала. Неважно какая у вас причина, это очень легко сделать.

Возможен вывод экрана Android на компьютер через сеть Wifi или с помощью USB подключения. Оба способа очень просты и потребуют минимум действий и настроек. Причем оба метода кроссплатформены, вы можете использовать их одинаково успешно в Windows, Linux или даже Mac, вам только нужен браузер Google Chrome на компьютере и все. Дальше мы рассмотрим как все правильно настроить.

Вывод экрана Android на компьютер через wifi

Для трансляции экрана Android на компьютер нам понадобится бесплатное приложение Screen Cast. Это очень простая программа, которая позволяет делиться экраном другими устройствами, подключенными к одной wifi сети. Вы можете создать точку доступа или же подключить компьютер и телефон к одной сети с помощью роутера.

Сначала установите приложение на телефон из официального магазина Google Play:

Затем запустите программу из главного меню смартфона и просто нажмите кнопку «Start»:

В окне подтверждения нажмите «Start now» чтобы подтвердить запуск сессии. Вы можете установить галочку «Dont show again» чтобы не видеть это сообщение каждый раз.

Теперь достаточно открыть любой браузер и ввести ссылку, которую вывело приложение. Ссылку нужно вводить полностью, включая адрес порта. После того, как вы нажмете Enter, экран вашего устройства отобразится на компьютере.

Несмотря на всю простоту, у приложения есть несколько настроек. Вы не можете настраивать качество или положение экрана, но зато можете защитить трансляцию паролем. Для этого нажмите на кнопку с бутербродом, это классическая кнопка меню и выберите «Settings»:

Установите галочку «Required password for viewing screen cast»:

Пароль будет создан автоматически, и теперь, чтобы получить доступ к вашей трансляции через браузер, вам понадобится ввести его. Только после этого вы увидите android на экране компьютера.

Вывод экрана Android на компьютер через USB

Если вы не можете подключить устройства к одной сети чтобы настроить вывод экрана Android на компьютер через сеть, то можно получить тот же результат с помощью USB. Но перед тем, как вы начнете что-либо делать нужно включить режим отладки по USB. Откройте утилиту «Настройки», затем «Для разработчика» и поставьте галочку на пункте «Отладка по USB»:

Затем подключите телефон к компьютеру по USB и вы увидите в области уведомлений сообщение, что отладка по USB разрешена:

Далее нужно установить расширение Google Chrome Vysor из официального магазина:

После установки, значок приложения появится на стартовом экране Chrome:

Запустите его и нажмите «Find Devices»:

Выберите ваше устройство из списка. Затем возьмите устройство и разрешите отладку нажатием кнопки «Ok»:

Дальше будет установлено приложение на телефон и начнется трансляция. Обратите внимание, что вам нужен именно Google Chrome для этого метода, Chromium не поддерживается, поскольку там нет плагина PNaCL, который используется приложением. После запуска трансляции программа предложит вам выбрать основные настройки:

А дальше вы можете экран телефона на компьютере android и видеть что там происходит.

Выводы

В этой статье мы рассмотрели как выполняется трансляция экрана с android на компьютер. Как видите, это очень просто, особенно с помощью первого способа. Второй способ более сложный но у него есть свое преимущество — вы можете поворачивать экран в горизонтальную плоскость, применять различные настройки качества и так далее. Если у вас остались вопросы, спрашивайте в комментариях!

Читайте также:  Android developers get started

Источник

Стрим видео с Android устройства по UDP в JAVA приложение

Итак, выходим на финишную прямую. Стримить видео с андроида на VLC плеер мы уже научились, теперь осталось только интегрировать окошко с видео в JAVA приложение и начать рулить роботелегой.

В этом нам очень сильно поможет проект с открытым исходным кодом VLCJ CAPRICA.

The vlcj project provides a Java framework to allow an instance of a native VLC media player to be embedded in a Java application.

Идея у ребят простая, но гениальная (реально перцовая). Вместо мучений с библиотеками FFmpeg и прочим, надо сразу вызывать специалиста ядро нормального, функционального и профессионального медиаплеера VLC. И вызвать его прямо из JAVA приложения.

Кому интересно, просим под кат.

Поскольку, в этом вояже хватает подводных камней, то начнём, как водится, с очень простого и лишь затем перейдём к тривиальному.

Инсталляция пакета VLCJ

Первым делом проверьте установленную у вас версию медиапроигрывателя VLC. Свежая версия нам не нужна, там выпилено то, что требуется для udp стрима. Об этом уже говорилось в предыдущем посту. Поэтому качаем версию 2.2.6 Umbrella и заодно тщательно проверяем свой JAVA пакет. Они должны совпадать по разрядности. Если плеер использует 64-разрядную архитектуру, то и JDK обязан быть таким же. А то не взлетит.

После этого уже можно скачать сам пакет библиотек VLCJ

Обратите внимание, что нам нужен пакет vlcj-3.12.1 distribution (zip). Именно он работает с плеерами версий VLC 2.2.x. Разархивировать его можно куда угодно, главное, что не в папку самого VLC, ибо там по именам совпадают два файла. И если вы их перезапишите, кончится всё это полным провалом.

Далее, создаем проект в IDE IntelliJ IDEA (если у вас другое IDE, то ничем помочь не могу) и прописываем необходимые зависимости для интеграции библиотек VLCJ.

Делаем именно так для файлов:

Затем создаем единственный класс и пишем в нём следующую малюсенькую программку.

Да, пока мы пытаемся проигрывать просто файл (как видно из кода). С udp лучше не начинать — не заработает. А файл проигрывается вполне, если вы, конечно, не забыли его с соответствующим именем разместить заранее там, где надо. Думаю, что даже для самого начинающего джависта не составит труда разобраться в вышеприведенном коде.

и создание самого инстанса медиаплеера

А потом мы просто его добавляем в нужную графическую панель:

И всё, файл будет проигрываться именно в этом окошке.

А теперь попробуйте заменить

как мы спокойно делали в прошлом посте для стриминга видео через udp соединение.
Здесь такой номер не пройдёт. Окошко, конечно откроется, но покажет фигу, в смысле темный экран. Хотя никаких логов с ошибкой не будет. Просто не будет ничего.

Надо разобраться

Может быть не хватает кодека H264, который мы выбрали в настройках? Стоп, а как тогда только что проигрывался файл ttt.mp4? Он же не может проигрываться при такой настройке, он же — mp4.

Немедленно приходит понимание того, что библиотека VLCJ запускает только само ядро плеера. А какие там были предварительные настройки она не знает и знать не хочет. То есть, нам надо каким-то образом при запуске JAVA приложения, как-то передать VLC плееру, что мы хотим явно использовать кодек H264 или, допустим, хотим повернуть изображение или что-то ещё.

Оказывается, сделать это можно, используя класс MediaPlayerFactory. Только мы его запускали без аргументов, а можно даже с ними. На stackoverflow.com я тут же нашел простой пример, связанный с поворачиванием изображения:

Читайте также:  Google переводчик offline для андроид

То есть, чего-то там передаем строчным массивом в медиафабрику и оно там сохраняется для используемого медиаресурса.

Я попробовал этот способ для проигрывания файла и как водится, ничего не заработало. Оказывается, забыли две черточки добавить и разнесли по всему интернету. Пришлось догадываться, используя похожий метод transform.

Короче говоря, должно быть:

Теперь наш эталонный файл перекривило как надо!

Дальше будет уже совсем просто:

Для определения кодека, согласно командной строке VLC мы добавляем в строковый массив строку:

Снова пробуем udp канал

И в этот раз всё работает, обозначая победу человеческого разума. Теперь это окошко с видео или несколько таких окошек вы сможете беспрепятственно портировать в графический интерфейс вашего JAVA приложения.

Казалось бы победа?

Не совсем. Легкое недоумение у меня вызвали временные задержки или по научному, лаги. Сначала они более менее приёмлимые, но если у вас хватит терпения просмотреть видео до конца, то вы увидите, что лаг к концу первой минуты трансляции достигает аж пяти секунд. У меня терпения хватило на 10 минут съемки, но, как ни странно, задержка больше не увеличивалась, а так и осталась в тех же пределах.

Конечно, для просмотра видео с камеры такое сгодится, но для управления роботележкой едва ли. Даже луноход реагировал быстрее в два раза!

Подозрения сразу пали на процессы кэширования и они (подозрения )оказались верными.

Самым наглым оказался:

Он как раз и отжирает по умолчанию практически всё, если ему вовремя не дать по рукам.
Может устроить лаг и:

Поэтому во избежание многосекундных задержек рекомендуется добавить во всё тот же строковый массив через запятую следующие строчки:

Параметры там задаются в миллисекундах и поэтому каждый желающий может подобрать их под себя.

Ещё можно использовать ключ:

Тогда медиаплеер будет стараться оптимизировать джитер — подергивание экрана. Но там, чем больше установлено время, тем лучше оптимизируется и это понятно почему. Так что здесь остается лишь искать консенсус и видеть иногда в логах такое безобразие:

Вот хотел он, понимаешь, джиттер исправить, а ты временной промежуток слишком маленький поставил. Теперь сам виноват.

Теперь вроде бы все как надо. Задержку удалось сократить меньше, чем до одной секунды (правда, чуть-чуть меньше).

В итоге, получился совсем крохотный рабочий код

Теперь можно интегрировать видео трансляцию в мою программулину по управлению роботележкой, где раньше я передавал видео по кускам. И надо сказать код весьма упростился, а качество на порядок улучшилось. Плюс ко всему к видео потоку мы можем передать показания

акселерометров
гироскопов
уровня освещения
давления воздуха
показаний компаса
температуры
и даже влажности

При условии, конечно, что все эти сенсоры у вашего смартфона имеются.

И даже включить фару! Автоматически! Если уровень освещения упадёт.

Вряд ли кому особо интересно, но на случай ссылки на гитхаб:

Источник

Как записать экран с Android Studio

Я подключаю свой телефон к Android Studio и кодирую. Я хочу записать экран своего телефона. Я видел это, но эта кнопка отключена в моей Android Studio . Я могу снимать экраны, но не могу записывать. Может кто-то помочь мне с этим?

ОБНОВЛЕНИЕ

Так оно и есть в моей студии Android. Кнопка отключена

10 ответов

Возможно, ваше устройство не поддерживает запись с экрана, есть много устройств, которые не поддерживают запись с экрана, поэтому это проблема устройства. Если вы хотите записать экран своего приложения, просто запустите приложение на эмуляторе Android или на genymotion, запустите средство записи экрана рабочего стола и настройте экран рабочего стола в соответствии с эмулятором. Есть много программ записи экрана для ПК, но я предпочитаю cam studio 8. Спасибо.

Читайте также:  Google android nfc payment

В случае с эмулятором я понял, что вам следует установить Конечный пользователь DirectX Время выполнения

Установил его для другого приложения, и, к счастью, Android Sceer Record работает нормально и не отображается серым цветом!

Надеюсь, это поможет другим людям

Для тех, кто никогда не находил кнопку записи экрана или кнопку скриншота. Ну вот

Во-первых, убедитесь, что у вас открыт LogCat (нажмите F6, по крайней мере, в OSx).

Тогда вы можете обнаружить, что все еще не видите кнопку записи. Просто наведите указатель мыши на крошечную стрелку «переполнения», показанную на изображении ниже.

Теперь вы должны увидеть кнопку записи, показанную на изображении ниже.

Поздравляем, если ваше устройство поддерживает запись экрана, просто нажмите кнопку, и появится диалоговое окно с просьбой ввести разрешение и битрейт.

Откройте эмулятор Android, Нажмите на правой боковой панели кнопку «. » Откройте новое окно, экран записи и начните запись Все нормально https://developer.android.com/studio/run/emulator.html

У меня такая же проблема. Это было решено, когда я не запускал, а отлаживал приложение.

После отладки приложения значок будет включен, даже если вы просто запустите приложение без отладки.

Думаю, это нужно делать для каждого разрабатываемого вами приложения, поскольку это должна быть функция отладки или что-то в этом роде.

* Обратите внимание, что на этом изображении я использую Android Studio post 2.0, но когда со мной возникла эта проблема, я использовал версию до 2.0, так что это не имеет значения.

Может тебе стоит просто сменить телефон, вот так:

При использовании HUAWEI запись экрана отключена:

Но при переходе на Нубию работает!

Команда screenrecord просто отсутствует:

В Windows я предлагаю в качестве альтернативы использовать универсальный инструмент захвата экрана Fraps . Это потрясающий инструмент со слишком многолетней историей, чтобы сосчитать. Я не связан с ними, я просто использовал его «в свое время», когда много играл. На вкладке «Фильмы» добавьте горячую клавишу захвата видео и используйте ее для запуска / остановки записи. Счетчик FPS будет красным во время записи.

В более новых версиях Android Studio требуется внешний телефон Android для записи экрана, желательно с разрешением не менее 720p . Поскольку внутренняя работа выполняется в виртуальной памяти, она не может быть записана и поэтому отключена, поскольку не может одновременно записывать и запускать эмулятор. Я использую Android Studio 2.3.2 , который является последним и на котором я испытал это. Но когда я закрыл эмулятор и подключил свой HTC One M9 , он автоматически включил кнопку записи для записи с телефона, а не с эмулируемого устройства.
Проверьте изображения ниже и разницу между ними в красных кружках:

Первое изображение, эмулируемое устройство на компьютере :

Второе изображение, персональное устройство, подключенное к компьютеру :

Зайти в ваше меню

  • View -> Tool Windows -> Android

Вы найдете значок записи в нижнем левом углу.

Если вы используете AVD, убедитесь, что параметр «Использовать GPU хоста» отключен .

Чтобы сделать видеозапись своего приложения:

  • Запустите приложение, как описано в разделе «Запуск приложения в режиме отладки».
  • Щелкните Android, чтобы открыть окно инструмента Android DDMS.
  • Щелкните Запись экрана в левой части окна инструмента Android DDMS.
  • Щелкните Начать запись.
  • Взаимодействуйте с вашим приложением.
  • Щелкните Остановить запись.
  • Введите имя файла для записи и нажмите ОК.

Если у вас есть реальное устройство, запустите его в режиме отладки, а затем перейдите в представление Logcat, слева будет кнопка записи экрана.

Источник

Оцените статью