Как воспроизводить файлы каталога mp3 в CodenameOne?

#java #android #mobile #netbeans #codenameone

Вопрос:

Я недавно начал с 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");
        }
        });
 

Ответ №1:

Звук fs.getAppHomePath() "recordings/" включен . Упаковка аудио в банку увеличит размер вашей банки и окончательный размер приложения, который превысит бесплатную квоту, поэтому мы обычно не рекомендуем этого делать.

Если вы все еще решите пойти по этому маршруту, вы можете сохранить файлы в корневой папке src и получить к ним доступ с помощью CN.getResourceAsStream("/filename.mp3") .

Тогда вы можете просто использовать:

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

В качестве альтернативы вы можете хранить файлы в Интернете и использовать URL-адрес HTTPS вместо URL-адреса файла для их воспроизведения.

Вы не можете динамически перечислять файлы, так как нет опции перечисления для HTTP или содержимого jar.

Комментарии:

1. Эй, шай! У меня все еще есть проблема , вот что я написал в функции запуска. InputStream streamFromResource = CN.getResourceAsStream(«/filename.mp3»); MediaManager.createMedia(streamFromResource, «аудио/mp3», ложь); У меня ошибка во 2-й строке (я не знаю, что я должен указать в 1-м параметре)

2. Я неправильно запомнил, что он не включает логический аргумент, поэтому MediaManager.createMedia(streamFromResource, "audio/mp3"); будет работать.

3. Все еще не работает! Кстати, mp3-файл находится в пакете по умолчанию. вот запуск функции: pastebin.com/LRTKGzDL

4. В чем ошибка? Является ли входной поток нулевым или в консоли что-то напечатано?

5. Вот результат, Шай. i.ibb.co/p1wYqnQ/noa.png «имя файла.mp3» находится в пакете по умолчанию, как вы можете видеть, я получаю черный экран. Я не знаю, есть ли у вас старый проект, который иллюстрирует пример, может быть, я что-то упускаю?