java - 如何在 Codenameone 中播放音频

标签 java android audio codenameone

我正在开发一个基于 codenameone 的应用程序。现在我尝试在后台播放声音。不幸的是,我没有找到相关的代码示例。

我唯一拥有以下内容,但不起作用:

InputStream uri = getClass().getResourceAsStream("startsound.mp3");
    try {
        findMediaPlayer().setDataSource(uri,"audio/mpeg",null);
    } catch (IOException ex) {

    }
    findMediaPlayer().run();

有人有这个问题的示例代码吗?

最佳答案

查看 developer guide有关此代码示例,包括音频录制/播放应用程序的小示例:

Form hi = new Form("Capture", BoxLayout.y());
hi.setToolbar(new Toolbar());
Style s = UIManager.getInstance().getComponentStyle("Title");
FontImage icon = FontImage.createMaterial(FontImage.MATERIAL_MIC, s);

FileSystemStorage fs = FileSystemStorage.getInstance();
String recordingsDir = fs.getAppHomePath() + "recordings/";
fs.mkdir(recordingsDir);
try {
    for(String file : fs.listFiles(recordingsDir)) {
        MultiButton mb = new MultiButton(file.substring(file.lastIndexOf("/") + 1));
        mb.addActionListener((e) -> {
            try {
                Media m = MediaManager.createMedia(recordingsDir + file, false);
                m.play();
            } catch(IOException err) {
                Log.e(err);
            }
        });
        hi.add(mb);
    }

    hi.getToolbar().addCommandToRightBar("", icon, (ev) -> {
        try {
            String file = Capture.captureAudio();
            if(file != null) {
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MMM-dd-kk-mm");
                String fileName =sd.format(new Date());
                String filePath = recordingsDir + fileName;
                Util.copy(fs.openInputStream(file), fs.openOutputStream(filePath));
                MultiButton mb = new MultiButton(fileName);
                mb.addActionListener((e) -> {
                    try {
                        Media m = MediaManager.createMedia(filePath, false);
                        m.play();
                    } catch(IOException err) {
                        Log.e(err);
                    }
                });
                hi.add(mb);
                hi.revalidate();
            }
        } catch(IOException err) {
            Log.e(err);
        }
    });
} catch(IOException err) {
    Log.e(err);
}
hi.show();

enter image description here

关于java - 如何在 Codenameone 中播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41608212/

相关文章:

Java TableModel 实现导致程序崩溃

android - 异步任务不会停止

android - 自定义软键盘 urdu 设置光标右侧

vb.net - VB.NET:无法从资源加载音频

java - 在Java中一个接一个地播放WAV文件

html - HTML5 中的 MIDI 音乐支持

java - 如何使用 MVN 运行包含 Main 的特定 java 文件?

java - 如何在 IntelliJ 中使用我的 JPA 实体填充数据库

java - 处理两个重叠节点上的鼠标事件 - Javafx

java - 在 Yii 中对 Android 用户进行身份验证