IMEDIA_SetVolume
A5509T で、
IMEDIA_SetVolume( pMedia , volume ); IMEDIA_Play( pMedia );
こういうプログラムを書いても、音量は変わってくれない(A5509T だけじゃなくて、BREW2.1 全部かも)。
どうやら、再生中以外は IMEDIA_SetVolume() に失敗するようだ。
なので、
IMEDIA_Play( pMedia ); IMEDIA_SetVolume( pMedia , volume );
こういう順番で書く必要がある。
ただ、これをやると、W31T(BREW3.1 全部かも) で、最初の一瞬だけボリュームがデフォルトのまま流れてしまう。
なんでかというと、再生→ボリューム変更の順番で行っているから、コールバックリストには、再生→ボリューム変更の順番で入ってくる。
すると最初の一瞬だけボリュームがおかしくなってしまうのだ。
これを解決するには、IMEDIA_Play() より前に IMEDIA_SetVolume() を呼び出せばいい。
どうやら W31T は IMEDIA_Play() の前に実行しても正常に動作するようだ。
で、自分の最終的な実装は、
IMEDIA_SetVolume( pMedia , volume ); IMEDIA_Play( pMedia ); IMEDIA_SetVolume( pMedia , volume );
こうなりました(ノ∀`)