AndroidのBluetoothの実装サンプルにどうぞ

AndroidのBluetoothLE、なにかと不安定であるといわれますが、私のコードはそこそこ安定するようになってまいりました。

BLE-Midi 1.0 での実装例としてご参考にどうぞ。

ロジックは他の方のOSSを拝借して、より、低階層のハードウェアよりの実装を頑張りました。

https://github.com/syntaro/midione-android

I almost made it.Bluetooth LE, Android 10 to 16, MIDI1.0.Very stable and good response.
Thank you. Apache2.0 License. Feel free to use it.
Have a nice day.with BLE Computing.

@kshoji さんのものに2年ちかくのテストを重ね改善を加えたものです。https://github.com/kshoji/BLE-MIDI-for-Android

改善内容

  • MIDI1.0を理解してるプログラマー前提で、カプセル化はすこし遠慮しています。
  • バッファは16を超えて転送すると、古いMIDI機器はエラーになるので、16バイトで区切りました。
  • BLEの操作は専用のThreadから行っています。そのため、レスポンスの待機がしやすくなっていて、安定しました。
  • javax sound midiパッケージのクローンをせず、独自のフレームワークにしました。MIDIOneです。一番目と被りますが。
  • MIDIOneはいろいろつくっていますが、比較的安定しているのは、BLEのみで、それだけ公開しています。
  • 16バイトで区切っても、MTUを64未満もだめなようでした。これは憶測です。でも、アンドロイド端末によりエラーが出てました。
  • エラー数をカウントしているので、連続1000回失敗したら、切断しちゃってもいいのかもしれないですが、それは現状行っていません。コードのカスタマイズで試してみてください。
広告を表示しています。