MusicXML を読み取って再生するための単純なパーサーを作成しようとしています。JFugue 5.0.3 を使用しています。ライブラリは、時間の半分でハングアップします。
私のコード:-
public void play() throws ParserConfigurationException, ParsingException, IOException {
MusicXmlParser_J parser_j = new MusicXmlParser_J();
StaccatoParserListener listener = new StaccatoParserListener();
parser_j.addParserListener(listener);
parser_j.parse(musicXMLFile);
Player player = new Player();
final Pattern musicXMLPattern = listener.getPattern();
player.play(musicXMLPattern);
}
このコードは、MusicXML ファイルをビルドしようとした後に失敗し、役に立たないエラー メッセージが表示されます:-
attempting to build file
Oops something went wrong. The error isConnection timed out
時々機能し、機能するときは、魔法のように数ミリ秒以内に機能します。JFugue がネットワーク経由でダウンロードしようとしているのは何ですか? 少しデバッグすると、ダウンロードすることで動作することが明らかになりました
これに取り組んでいる人々へのいくつかの質問:-
このコードが MusicXMLParserListener クラスで機能しないのはなぜですか? このクラスは、Staccato パーサーが定義されていることを想定しているため、任意の null ポインター例外で失敗します。なんで?そして、MusicXML の 2 つの異なるリスナー (MusicXMLParserListener_J と MusicXMLParserListener_R) はどうなるのでしょう? 壊れたものを消費者に公開しないでください。
JFugue が MusicXML をサポートしていることを読んだことがあり、これが問題なく動作することを期待していました。
JFugue が MusicXML を使用している例はありますか?