私はandroid.media.midiで働いていると私はこのような遅延値でMidiInputPortにMIDIデータの束を送っています:MidiInputPort.flush()がAndroidのバッファをクリアしないのはなぜですか?
long start = System.nanoTime();
if (messages != null)
{
for (int i = 0; i < messages.length(); i++)
{
MidiNote note = MidiHelper.parseMessageForNote(messages.getString(i));
if (note != null)
{
byte[] buffer = new byte[32];
int numBytes = 0;
int channel = 1; // MIDI channels 1-16 are encoded as 0-15.
buffer[numBytes++] = (byte) (note.action + (channel - 1));
buffer[numBytes++] = (byte) note.note;
buffer[numBytes++] = (byte) note.velocity;
long delay = note.delay * 1000000;
midiInputPort.send(buffer, 0, numBytes, start + delay);
start = start + delay;
}
}
midiInputPort.flush();
}
あなたは、私が(ちょうどしようと、すぐにすべてのデータを送信した後のフラッシュを呼び出すことがわかりますflush()を動作させるために)、効果はありません。私は一度もフラッシュしなかったかのように、データはまだミディポートに送られます。この関数については、ドキュメントはかなり明確でシンプルです。 「今後予定しているイベントをキャンセルしたい場合は、flush()を呼び出してください」というメッセージが表示されます。私が行方不明になっていることについて何かありますか?どんな助けもありがとうございます。