Codenameone 使用Codename One的流媒体直播音频

Codenameone 使用Codename One的流媒体直播音频,codenameone,Codenameone,我试图说服我的一位朋友使用CN1作为他的移动应用开发平台。他提出的一个挑战是使用CN1应用程序从广播电台传输实时音频的能力 我已经看过了文档,我可以看到加载手机上已经存在的媒体文件的例子,但我看不到你将其指向URL并流式播放实时音频的例子 正如你可能猜到的,他有兴趣为尚未拥有自己电台的远程电台开发电台应用程序 在CN1中有可能做到这一点吗?这在CN1中是很有可能的,过去有很多开发人员这样做过 您可以使用MediaManager并将其指向您的远程流媒体URL 以下用于从远程URL播放音频文件,并可

我试图说服我的一位朋友使用CN1作为他的移动应用开发平台。他提出的一个挑战是使用CN1应用程序从广播电台传输实时音频的能力

我已经看过了文档,我可以看到加载手机上已经存在的媒体文件的例子,但我看不到你将其指向URL并流式播放实时音频的例子

正如你可能猜到的,他有兴趣为尚未拥有自己电台的远程电台开发电台应用程序


在CN1中有可能做到这一点吗?

这在CN1中是很有可能的,过去有很多开发人员这样做过

您可以使用
MediaManager
并将其指向您的远程流媒体URL

以下用于从远程URL播放音频文件,并可用于流媒体:

Form radio = new Form(new BorderLayout());
Display.getInstance().scheduleBackgroundTask(() -> {
    try {
        Media audio = MediaManager.createMedia(streamingUrl, false);
        audio.prepare();
        Display.getInstance().callSerially(() -> {
            final MediaPlayer player = new MediaPlayer(audio);
            player.setAutoplay(true);
            audio.setNativePlayerMode(false);
            radio.add(BorderLayout.CENTER, player);
            radio.revalidate();
        });
    } catch (IOException err) {
        Log.e(err);
        ToastBar.showErrorMessage("Error streaming audio: " + err);
    }
});
radio.show();
为避免此错误“此平台不支持视频播放”,在处理视频流时,必须像这样设置
isVidio
参数

Media audio = MediaManager.createMedia(streamingUrl, true);

谢谢你。当我运行此代码时,我会看到一个媒体播放器,中间有“视频”一词。当我添加我自己的自定义url(指向广播流)时,我会收到此错误…“此平台不支持视频播放”。我不知道为什么我会看到“视频”消息。我使用Fiddler尝试捕获url。。。这就是我所拥有的。。。好的,那个url不起作用。我已设法获得以下url以在VLC中工作。。。但它仍然给了我CNO中的“视频”错误。我发现有趣的是,当我使用内置的CNO网络监视器时,我看不到任何流量。。。显然,它在调用之前就失败了。它使用本机操作系统来播放媒体。模拟器的行为将与设备截然不同!问题是它不会表现得“更好”。JavaFX中的一个大问题是,它惊人地不能播放仅使用https的http媒体。因此,一些流可能会因为JavaFX糟糕透顶而失败。我们必须在内部将其用于媒体,因为它是Java开发者唯一的媒体API。非常感谢