【问题标题】:How to play mp3 directory files in CodeNameOne?如何在 CodeNameOne 中播放 mp3 目录文件?
【发布时间】:2021-05-13 01:59:23
【问题描述】:

我最近开始使用 codenameone,并且正在开发一个音乐播放器应用程序。我想从文件夹中获取音乐。我在文档中找到了有关“音频捕获和录制”的代码。

但我正在寻找的只是播放特定文件夹中的音频。如何调整此代码?我也没有找到这些音频的保存位置。

这是代码+录制代码的片段。

Button button = new Button("musiques!");
         Form hi = new Form("musiques", new BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER_ABSOLUTE));
        hi.addComponent(BorderLayout.CENTER, LayeredLayout.encloseIn(BoxLayout.encloseY(button)));
        
        button.addActionListener((e) -> {
                 InputStream streamFromResource = CN.getResourceAsStream("/filename.mp3"); 
        try { 
            MediaManager.createMedia(streamFromResource, "audio/mp3");
        } catch (IOException ex) {
            System.out.print("non");
        }
        });

【问题讨论】:

    标签: java android mobile netbeans codenameone


    【解决方案1】:

    音频位于fs.getAppHomePath() + "recordings/"。将音频捆绑到 jar 中会增加 jar 大小和最终应用大小,这将超过免费配额,因此我们通常不建议这样做。

    如果您仍然选择使用该路线,您可以将文件存储在 src 文件夹的根目录中,然后使用 CN.getResourceAsStream("/filename.mp3") 访问它们。

    然后你可以使用:

    Media m = MediaManager.createMedia(streamFromResource, "audio/mp3");
    

    或者,您可以将文件存储在网络上并使用 HTTPS URL 而不是文件 URL 来播放它们。

    您无法动态列出文件,因为没有针对 HTTP 或 jar 内容的列表选项。

    【讨论】:

    • 嘿嘿!我仍然有一个问题,这是我在 start 函数中写的。 InputStream streamFromResource = CN.getResourceAsStream("/filename.mp3"); MediaManager.createMedia(streamFromResource, "audio/mp3", false);我在第二行有错误(我不知道我应该在第一个参数中输入什么)
    • 我记错了,它不包含布尔参数,所以MediaManager.createMedia(streamFromResource, "audio/mp3"); 可以工作。
    • 还是不行! mp3 文件位于默认包 btw 中。这是函数开始:pastebin.com/LRTKGzDL
    • 错误是什么?输入流是空的还是控制台中打印了一些东西?
    • 这是输出 Shai。 i.ibb.co/p1wYqnQ/noa.png“filename.mp3”在默认包上,你可以看到我得到的是黑屏。我不知道你是否有一个旧项目来说明这个例子,也许我遗漏了什么?
    猜你喜欢
    • 1970-01-01
    • 2012-04-11
    • 2013-05-28
    • 2010-09-30
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多