当前位置: 首页 > 知识库问答 >
问题:

代号一-播放一个声音

惠凯歌
2023-03-14

下面的代码在模拟器中工作很好,我听到了音频:

    try {
        Media m = MediaManager.createMedia((Display.getInstance().getResourceAsStream(getClass(), "/notification_sound_bell.mp3")), "audio/mpeg");
        m.play();
    } catch (IOException err) {
        Log.e(err);
    }

但它在真正的Android设备上根本不起作用。怎么了?在生成的apk上,“notification_sound_bell.mp3”文件放在/res/raw文件夹中。

[EDT]0:0:20,186-代号1修订:3B20Edadec808867AFC2B19774268B66890616AD

[EDT]0:0:20,191-Exception:java.lang.nullPointerException-试图在空对象引用java.lang.nullPointerException上调用虚拟方法'int java.io.inputstream.read(Byte[],int,int)‘:试图在com.codename1.impl.androidimplementation.createMedia(androidimplementation.java:2802)和com.codename1.ui.display.createMedia(Display.java:2998)上调用虚拟方法'int在com.codename1.media.media.media.media.java:125)在it.galgani.app.fiveminutesalert.myapplication.start(myapplication.java:66)在it.galgani.app.fiveminutesalert.myapplicationstub.run(myapplicationstub.java:140)在com.codename1.ui.display.processSerialcalls(display.java:1116)在com.codename1.ui.display.mainedtloop(runnableWrapper.java:120)位于com.codename1.impl.codenameonethreAD$1.run(codenameonethread.java:60)at java.lang.thread.run(thread.java:762)[EDT]0:0:20,198-Exception in Alert每五分钟version 1.0[EDT]0:0:20,199-OS和[EDT]0:0:20,201-Error java.lang.nullpointerException:尝试在空对象引用上调用虚拟方法'int java.io.inputstream.read(Byte[],int,int)'[EDT]0:0:20,202-Current Form在null对象引用java.lang.nullpointerException上读取(Byte[],int,int)“:试图在com.codename1.impl.android.androidimplementation.createMedia(androidimplementation.java:2802)在com.codename1.ui.display.createMedia(display.java:2998)在com.codename1.media.mediamanager.createMedia(Mediamanager.java:125)在aManager.java:94)在it.galgani.app.fiveMinutesAlert.myApplication.start(MyApplication.java:66)在it.galgani.app.fiveMinutesAlert.myApplicationStub.run(MyApplicationStub.java:140)在com.codename1.ui.display.ProcessSerialCalls(Display.java:1116)在com.codename1.ui.display.MainedTLoop(Display.java:911)在com.codename1.ui.runnableWrapper.run阅读.java:762)

共有1个答案

诸葛苏燕
2023-03-14

似乎我们的系统对Android上文件名中的notification_sound前缀有特殊处理,以便与Android上的背景通知声音一起使用。只需将该文件重命名为其他内容,它就会像预期的那样工作。

 类似资料:
  • 我为我的游戏编写了一个定制的声音系统,但如果要求在几毫秒内播放两个声音,则只能播放一个声音片段。 我尝试在这样的新线程上运行播放,但它不起作用。没有例外,它只是不会播放两种声音。 这是声音播放器类

  • 问题内容: 当我尝试在小程序中同时播放两个声音时,它将不起作用。我正在使用s。甚至可以在小程序中同时播放两个声音吗? 问题答案: 从Java 1.3+开始,请使用Java Sound API 的类。它类似于基于applet的类,但更好。 EG改编自Java声音信息上显示的EG。

  • 问题内容: 我正在开发节拍器应用程序。用户可以在运行时选择bpm,我的应用程序将相应地播放“滴答”声。“滴答”是一个节拍器“拍”(mp3)。我尝试使用Handler和MediaPlayer来实现它,但是节拍器一点也不精确。因此,我考虑了更改整个方法:当用户选择新的bpm值时,我通过每N毫秒重复X次滴答声,然后循环遍历此运行时创建的声音来合成新声音。这是有效的替代方法吗?如何在Android中实现?

  • 播放(播放音效/播放录音)

  • 问题内容: 我试图让多个声音文件在AVAudioPlayer实例上播放,但是当一种声音播放时,另一种声音停止。我一次只能播放一种以上的声音。这是我的代码: 有人可以告诉我如何一次播放多个声音文件,以帮助我吗?任何帮助深表感谢。 非常感谢,凯 问题答案: 音频停止的原因是因为您仅设置了一个AVAudioPlayer,所以当您要求类播放另一种声音时,当前您正在用新的AVAudioPlayer实例替换旧

  • 我的应用程序使用一些简短的声音来获得用户反馈。我使用以下代码: 示例调用: