なんとなく使えるとは思います。
なので、何点か引っかかったとこだけ記しておこうと思います。
MIDI再生を使用していたときに調べたことなので、
基本的にMIDI再生に関することだと思ってください。
WaveとかMP3も当てはまるかもしれませんが未検証です。
また、対象のVIVID Runtime SDKのバージョンは1.1です。
最近1.2が出ているので、そちらでは改善されているかもしれません。
音量について
SLVolumeItfのSetVolumeLevelで設定するわけですが、この引数が「SL_MILLIBEL_MIN ~ 端末のサポートする最大値(多くの場合は0)」と書いてあるのですが、
SL_MILLIBEL_MINを指定するとエラーが返ってきます。
(エミュレータとXperiaで確認)
エラーが出ない数値を探ると-2000でした。
なので、-2000 ~ 0の間で指定しましょう。
端末によってはこの数値も怪しいかもしれません。
あと、SL_MILLIBEL_MAXというのが定義されていまして、
これが最大値っぽいですが全然違うので気をつけましょう。
プレイヤーの解放について
MIDIのプレイヤーはCreateMidiPlayerで作成するわけですが、これを解放する前には手動でSLPlayItfのステータスをSL_PLAYSTATE_STOPPEDにしなければなりません。
SL_PLAYSTATE_PAUSEDのままDestroyしてしまうと
どうもきちんと解放されないようです。
(実機が落ちたり、動作が不安定になりました。)
MIDIの複数再生について
CreateMidiPlayerで再生オブジェクトを2個作ると何故か再生速度が速くなります。
2個作ってはいけないのかもしれません。
CreateMidiPlayer & CreateAudioPlayerで2個作ると
Xperiaは大丈夫でしたがエミュレータだと同じ現象です。
これは未だ解決方法不明です。
Vivid RuntimeでOpenSL ESのサンプルがwavファイルのみで、midiファイルの再生方法がわかりません。
よかったら新しい記事でmidi再生の記事を書いていただけませんか?