使用代号一流式传输实时音频

Streaming Live audio using Codename One

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

我查看了文档,我可以看到加载媒体文件的示例,这些文件已经在 phone 上,但是我看不到将它指向 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();

为避免此错误 "Video Playing is not supported on this platform",您必须在处理视频流时像这样将 isVidio 参数设置为 true。

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