Кодовое название один: как сделать прямой эфир - PullRequest
0 голосов
/ 03 мая 2018

Я хочу отобразить мой поток веб-камер, набрав его URL в BrowserComponent of codeName one.

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

Но если я пытаюсь в другом стандартном браузере, таком как Firefox, он работает нормально, я могу ясно увидеть мою камеру.

Итак, я хочу знать, есть ли решение для отображения liveStreaming с codeName одним браузером. Если да, пожалуйста, где я могу найти образец или пример?

спасибо

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Другое решение, использующее BrowserComponent.setURLHierarchy()

  1. Создайте папку с именем html и поместите ее в папку /src вашего проекта Codename One. Это означает, что ваш HTML5-плеер будет помещен в HTML-файл внутри папки /src/html. Если вы используете IDE Netbeans, эта папка будет показана как пакет вашего проекта.
  2. Реализуйте своего игрока (например, в /src/html/player.html). В качестве предложения вы можете использовать бесплатное решение с открытым исходным кодом videojs-http-streaming + video.js : если вы сделали правильную реализацию, оно должно работать с браузером. Обратите внимание, что вы можете добавить в /src/html/ все файлы, необходимые проигрывателю.
  3. В вашем приложении используйте код, подобный следующему.

Код:

Form hi = new Form("Video player", new BorderLayout());
if (BrowserComponent.isNativeBrowserSupported()) {
    BrowserComponent browser = new BrowserComponent();
    browser.setURLHierarchy("/player.html");
    hi.add(BorderLayout.CENTER, browser);
}
hi.show();

Вот и все. Конечно, самое сложное - реализовать проигрыватель HTML5: если ваше приложение может подключаться к Интернету, простым решением может быть использование CDN с использованием примеров кода, представленных на связанных страницах videojs-http-streaming.

0 голосов
/ 06 мая 2018

Ваш запрос может быть реализован несколькими способами. Я не уверен, что использование BrowserComponent - лучший вариант, однако кодирование с BrowserComponent довольно просто.

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

В своем комментарии к вашему вопросу я упомянул «JWPlayer», однако вчера я проверил, что (к сожалению) бесплатная лицензия JWPlayer, такая как моя (которая позволяет мне самостоятельно размещать плеер), больше не доступна для новой пользователи. Если быть более точным, то после запуска JW8 в октябре 2017 года проигрыватель с автономным размещением теперь доступен только для корпоративных клиентов.

Однако, чтобы показать вам простое решение, я зарегистрировал бесплатную 30-дневную пробную учетную запись на DaCast, которая предоставляет проигрыватель для ваших видео по запросу и для потокового вещания. В бэкэнд DaCast я загрузил пример видео, а затем получил код для использования проигрывателя, который похож на следующий (я запутал id):

<script id="xxxxxx_x_xxxxxx" width="590" height="431" src="//player.dacast.com/js/player.js"  class="dacast-video"></script>

Затем этот код может быть интегрирован в простую веб-страницу, подобную следующей (обратите внимание, что он не будет работать локально, его нужно разместить на своем сервере):

<!doctype html>
<html lang="en">
<head>
<title>
</title>
<meta charset="UTF-8" />
</head>
<body>
<script id="xxxxxx_x_xxxxxx" width="590" height="431" src="//player.dacast.com/js/player.js"  class="dacast-video"></script>
</body>
</html>

После этого вы можете создать BrowserComponent:

Form hi = new Form("Video test", new BorderLayout(BorderLayout.CENTER_BEHAVIOR_SCALE));
if (BrowserComponent.isNativeBrowserSupported()) {
    BrowserComponent browser = new BrowserComponent();
    browser.setURL("https://www.yourdomain.com/test.html");
    hi.add(BorderLayout.CENTER, browser);
} else {
    hi.add(BorderLayout.NORTH, "Your device is not supported");
}
hi.show();

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

...