代号一:如何做直播

时间:2018-05-03 15:27:43

标签: codenameone

我想通过在codeName one的Br​​owserComponent中输入他的网址来显示我的网络摄像头流。

由于我试图这样做一周,但我的BrowserComponent显示纯文本而不是图像cam。

但是,如果我在其他标准浏览器(如Firefox)中尝试它可以正常工作,我可以清楚地看到我的摄像头。

所以我想知道是否有一个使用codeName one Browser显示liveStreaming的解决方案。 如果是,请问我在哪里可以找到样品或示例?

感谢

2 个答案:

答案 0 :(得分:0)

您的请求可以通过多种方式实施。我不确定使用BrowserComponent是最佳选择,但BrowserComponent的编码非常简单。

首先,您必须在您的域上实现一个网页,该网页使用完全交叉兼容的HTML5播放器播放视频。有几种商业和免费解决方案具有不同程度的复杂性和成本。

在我对你的问题的评论中,我提到了#34; JWPlayer"但是昨天我已经检查过(不幸的是)像我一样的JWPlayer免费许可证(允许我自我托管播放器)新用户无法使用。更确切地说,在2017年10月推出JW8之后,现在只为企业客户提供自托管播放器。

但是,为了向您展示一个简单的解决方案,我在DaCast上注册了一个免费的30天试用帐户,该帐户为您的视频点播和直播提供播放器。在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。当然,这个答案只是给你的一个提示,你可以很容易地复制和测试,我不打算宣传任何特定的商业服务。

答案 1 :(得分:0)

另一种解决方案,使用BrowserComponent.setURLHierarchy()

  1. 创建一个名为html的文件夹,并将其放在Codename One项目的/src文件夹中。这意味着您的HTML5播放器将被放置在文件夹/src/html内的html文件中。如果使用Netbeans IDE,该文件夹将显示为项目的包。
  2. 实施播放器(例如在/src/html/player.html中)。作为建议,您可以使用免费的开源解决方案videojs-http-streaming + video.js:如果您已经做了正确的实施,它应该适用于浏览器。请注意,您可以将/src/html/添加到播放器所需的所有文件中。
  3. 在您的应用中,使用与以下内容类似的代码。
  4. 代码:

    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链接页面中提供的代码示例。