Irrlicht Android Media Player
Android のNative Activity で実装したアプリからオーディオの再生ができたので、ミクさんが踊ってくれるメディアプレイヤー的なものにしてみました。
PMD とVMD のロード処理の修正
以前のソースコードがHDD の故障とともに消えてしまったので、コードやMakefile を書きなおしていたところ、うまくロードできないPMD、VMD があることに気が付きました。
BinaryReader のロード処理で、プロセッサ種別に依存してうまく取り込めない(ARM CPU で構造体のアラインメントが異なる)のが原因のようです。
以前のバージョンのコンパイラ+古いバージョンのAndroid デバイスでは動いていたような気がするのに。
原因は単純なので修正しておきました。
Native Activity からのWakeLock の制御
少し経つと画面が暗くなって、画面が非表示状態になります。
PowerManager のWakeLock を制御すれば良さそうです。
Android NDK のNative Activity の場合はJNI を経由してPower Manager へアクセスするのかな。
後で調べておこう。
画面インタフェース
- パネル表示切替ボタン「⇅」
画面下部の設定用のインタフェースの表示/非表示を切り替える。曲目リスト、モデルリスト、環境設定のタブがある。 - ミュート切替ボタン「♪」
音声の出力状態を切り替える。OpenSL ES の(*uriPlayerVolume)->SetMute()
をコールしている。 - 再生/停止切替ボタン「▶」
モーションと音声の再生/停止を切り替える。アニメーションスピードの切り替えと(*uriPlayerPlay)->SetPlayState()
をコールしている。モデルまたは曲を変更した場合は最初から開始する。 - 終了ボタン「×」
アプリケーションを終了する。 - カメラ位置スクロールバー
カメラの位置を前後させる。
TODO
state->onAppCmd
にコールバック関数を設定しているのにキックされない原因を調べる。pFileSystem->createFileList()
が失敗する原因を調べる。- タスク復帰時に描画コンテキストをリストアする。
- GUI のSkin を変更する。
- Android 固有の入力イベントに対応する。
Comment