Octave 如何使用;javax.sound.midi.MidiSystem.getSequence“;八度

Octave 如何使用;javax.sound.midi.MidiSystem.getSequence“;八度,octave,javax.sound.midi,Octave,Javax.sound.midi,我使用Matlab已经有一段时间了,但我刚刚开始使用倍频程。我正在Windows计算机上尝试使用以下代码读取midi文件: javaaddpath('C:/Program Files/Java/jdk1.8.0_45/jre/lib/rt.jar'); midiFile = javaObject('java.io.File', file_name); if ~midiFile.exists error('Unable to find file %s',file_name); end s

我使用Matlab已经有一段时间了,但我刚刚开始使用倍频程。我正在Windows计算机上尝试使用以下代码读取midi文件:

javaaddpath('C:/Program Files/Java/jdk1.8.0_45/jre/lib/rt.jar');
midiFile = javaObject('java.io.File', file_name);
if ~midiFile.exists
    error('Unable to find file %s',file_name);
end

seq = javaObject('javax.sound.midi.MidiSystem.getSequence', midiFile);
但我得到了以下错误:

error: [java] java.lang.ClassNotFoundException: javax.sound.midi.MidiSystem.getSequence
我做错了什么


谢谢

函数
javaObject()
用于调用类构造函数。然而,
getSequence()
javax.sound.midi.MidiSystem
类的“正常”方法

octave> help javaObject 

 -- Built-in Function: JOBJ = javaObject (CLASSNAME)
 -- Built-in Function: JOBJ = javaObject (CLASSNAME, ARG1, ...)
     Create a Java object of class CLASSSNAME, by calling the class
     constructor with the arguments ARG1, ...

octave> man javaMethod 
 -- Built-in Function: RET = javaMethod (METHODNAME, OBJ)
 -- Built-in Function: RET = javaMethod (METHODNAME, OBJ, ARG1, ...)
     Invoke the method METHODNAME on the Java object OBJ with the
     arguments ARG1, ....

     For static methods, OBJ can be a string representing the fully
     qualified name of the corresponding class.
请注意,
javaMethod
的第二个参数通常是一个对象,但也可以是带有类名的字符串。因此,您需要执行以下操作:

octave> midiFile = javaObject ("java.io.File", "Downloads/MIDI_sample.mid");
octave> seq = javaMethod ("getSequence", "javax.sound.midi.MidiSystem", midiFile )
seq =

<Java object: javax.sound.midi.Sequence>
octave>midiFile=javaObject(“java.io.File”,“Downloads/MIDI_sample.mid”);
octave>seq=javaMethod(“getSequence”,“javax.sound.midi.MidiSystem”,midiFile)
序号=