当前位置: 首页 > 面试题库 >

简单的Java MIDI示例不产生任何声音

谯志诚
2023-03-14
问题内容

这个简单的代码在我用来测试的几台机器上没有产生任何声音。我正在Eclipse中运行代码,但我也尝试过使用命令行无济于事。

public static void main(String[] args)
{
    try {
        Synthesizer synthesizer = MidiSystem.getSynthesizer();
        synthesizer.open();

        MidiChannel[] channels = synthesizer.getChannels();

        channels[0].noteOn(60, 60);
        Thread.sleep(200);
        channels[0].noteOff(60);

        synthesizer.close();
    } catch (Exception e)
    {
        e.printStackTrace();
    }
}

我可以通过获取音序器,将MIDI事件添加到音序并播放音序来成功获取声音,但是我试图做一些音序器不支持的实时音乐效果。

有任何想法吗?

使用解决方案进行编辑:
事实证明,问题在于,默认情况下,JRE并未附带音库(有趣的是,使用Sequencer起作用了,而使用Synthesizer却没有了)。谢谢

为了解决该问题,我从java.sun.com下载了一个音库,并将其放在(在WinXP上)C:\ Program Files \ jre1.6.0_07 \
lib \ audio(必须创建音频文件夹)中。


问题答案:

JRE的某些安装不包含JavaSound soundbank.gm(为了节省空间),因此您的代码将没有在这些计算机上触发的声源。

检查无法运行的机器上是否存在音库。您也可以将音库与.class文件放在同一目录中,然后它将找到它。

可以在这些机器上添加音库或升级Java安装-不一致的痛苦,我知道:)



 类似资料:
  • 我正在编写一个简单的示例来测试Flink中CEP的新Scala API,使用最新的Github版本1.1-SNAPSHOT。 Pattern只是一个值的检查,并为每个匹配的模式输出一个字符串作为结果。代码如下: 它在1.1-SNAPSHOT下编译和运行,没有问题,但jobmanager输出没有显示该print()的迹象。即使放松模式条件,只设置“开始”(接受所有事件),也不会返回任何结果。 此外,

  • 主要内容:KafkaProducer API,生产者API,配置设置,SimpleProducer应用程序,简单的消费者实例,SimpleConsumer应用程序在这一节中将创建一个使用Java客户端发布和使用消息的应用程序。 Kafka生产者客户端由以下API组成。 KafkaProducer API 下面来了解Kafka生产者API。 KafkaProducer API的核心部分是类。 类提供了一个选项,用于将Kafka代理的构造函数与以下方法连接起来。 类提供方法来异步发送消息到主题。 的

  • 问题内容: 代码,注意值的顺序不同。因此,它在锁定行之间交替: 表def: 例外: 该代码仅与WITH(TABLOCK)提示一起使用。是否可能不仅仅为了并行更新那两行就锁定整个表? 问题答案: 您的两个语句以不同的顺序获取行锁。这是死锁的典型案例。您可以通过确保所采用的锁定顺序始终处于某种全局顺序(例如,按ID顺序)来解决此问题。您可能应该将这两个语句合并为一个,并在将客户端上的ID列表排序之前,

  • 我读了建筑合成学的入门书和你好三角形章节,并决定加入LWJGL。当我第一次尝试后屏幕上没有任何东西时,我再次尝试从另一个GL 3.x教程移植一些C代码,但无济于事。 据我所知,我把所有部分放在一起,但屏幕仍然是黑色的。我理解这些概念,但我确信我在这里错过了一些简单的东西。 我已经尽可能简单地减少了这个。请注意,以下类使用此着色器帮助程序,并且从我所知道的情况来看,它按预期工作(除了缺少错误检查之外

  • 这是我的雷克瑟。hpp文件: 一切都很好(这是我的想法),但当我跑的时候

  • 问题内容: 有没有人有一个使用ast.NodeVisitor的简单示例来遍历Python 2.6中的抽象语法树?对我来说,visit和generic_visit之间的区别尚不清楚,我无法使用Google Codesearch或纯Google找到任何示例。 问题答案: -当然,除非您在子类中覆盖了它- 当被调用以访问class的时,如果存在该方法,则调用,否则。后者再次在类本身的实现中,仅在每个子节