이 메모들로 구성된 미디 파일을 만들고 싶습니다. 인터넷에서이 코드를 가져 왔습니다. 이것에 문제가 있다는 것을 알 수 있다면 나는 더 나아갈 수있다. 이 응용 프로그램을 실행할 때 오류 호출 "Java 결과 1"오류가 발생합니다. 내가 필요로하는 것은 내가 이것을 통과 한 음표들로 구성된 MIDI 파일이 생성되어야한다. 전체 코드를 사용할 수 있습니다. 자바 결과 1 오류
public class CreateSequence{
private static final int VELOCITY = 64;
public static void main(String[] args) {
if (args.length != 1) {
printUsageAndExit();
}
File outputFile = new File(args[0]);
Sequence sequence = null;
try {
sequence = new Sequence(Sequence.PPQ, 1);
} catch (InvalidMidiDataException e) {
e.printStackTrace();
System.exit(1);
}
Track track = sequence.createTrack();
// first chord: C major
track.add(createNoteOnEvent(60, 0));
track.add(createNoteOnEvent(64, 0));
track.add(createNoteOnEvent(67, 0));
track.add(createNoteOnEvent(72, 0));
track.add(createNoteOffEvent(60, 1));
track.add(createNoteOffEvent(64, 1));
track.add(createNoteOffEvent(67, 1));
track.add(createNoteOffEvent(72, 1));
// second chord: f minor N
track.add(createNoteOnEvent(53, 1));
track.add(createNoteOnEvent(65, 1));
track.add(createNoteOnEvent(68, 1));
track.add(createNoteOnEvent(73, 1));
track.add(createNoteOffEvent(63, 2));
track.add(createNoteOffEvent(65, 2));
track.add(createNoteOffEvent(68, 2));
track.add(createNoteOffEvent(73, 2));
// third chord: C major 6-4
track.add(createNoteOnEvent(55, 2));
track.add(createNoteOnEvent(64, 2));
track.add(createNoteOnEvent(67, 2));
track.add(createNoteOnEvent(72, 2));
track.add(createNoteOffEvent(64, 3));
track.add(createNoteOffEvent(72, 3));
// forth chord: G major 7
track.add(createNoteOnEvent(65, 3));
track.add(createNoteOnEvent(71, 3));
track.add(createNoteOffEvent(55, 4));
track.add(createNoteOffEvent(65, 4));
track.add(createNoteOffEvent(67, 4));
track.add(createNoteOffEvent(71, 4));
// fifth chord: C major
track.add(createNoteOnEvent(48, 4));
track.add(createNoteOnEvent(64, 4));
track.add(createNoteOnEvent(67, 4));
track.add(createNoteOnEvent(72, 4));
track.add(createNoteOffEvent(48, 8));
track.add(createNoteOffEvent(64, 8));
track.add(createNoteOffEvent(67, 8));
track.add(createNoteOffEvent(72, 8));
//Now we just save the Sequence to the file we specified.
//The '0' (second parameter) means saving as SMF type 0.
//Since we have only one Track, this is actually the only option
//(type 1 is for multiple tracks).
try {
MidiSystem.write(sequence, 0, outputFile);
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}
private static MidiEvent createNoteOnEvent(int nKey, long lTick) {
return createNoteEvent(ShortMessage.NOTE_ON, nKey, VELOCITY, lTick);
}
private static MidiEvent createNoteOffEvent(int nKey, long lTick) {
return createNoteEvent(ShortMessage.NOTE_OFF, nKey, 0, lTick);
}
private static MidiEvent createNoteEvent(int nCommand, int nKey,
int nVelocity, long lTick) {
ShortMessage message = new ShortMessage();
try {
message.setMessage(nCommand, 0, nKey, nVelocity); // 0 always on channel 1
} catch (InvalidMidiDataException e) {
e.printStackTrace();
System.exit(1);
}
MidiEvent event = new MidiEvent(message, lTick);
return event;
}
private static void printUsageAndExit(){
out("usage:");
out("java CreateSequence <midifile>");
System.exit(1);
}
private static void out(String strMessage) {
System.out.println(strMessage);
}
}
이
출력 당신은 인수로 출력 파일 이름을 전달해야usage:
java CreateSequence <midifile>
Java Result: 1
실행할 때 정확한 결과를 붙여 넣으십시오. –
"Java result 1"오류가 없습니다. 이것이 당신의 상황에서 의미 할 수있는 유일한 것은 응용 프로그램이 상태 코드 1로 종료한다는 것입니다. 즉, 코드의'System.exit (1)'줄 중 하나에 도달했음을 의미합니다. 그러나 더 이상의 정보가 없다면, 그것이 일어날 이유를 말하기 란 불가능합니다. –
나는'System.exit (1)'을 치고 싶다고 확신한다. – user3805160