2012/05/19(土) [n年前の日記]
#1 [android] オプションメニュー関係とサウンド関係を勉強中
オプションメニューから、BG、スプライト相当、の描画の有効無効を切り替えられるようにしてみたり。状態によってメニュー項目表示も変わるように修正。onPrepareOptionsMenu() 内で、 setVisible() で切り替えていたけど、setTitle() でメニュー文字列が変えられるようなので、そちらも使ってみたり。
ついでに、setFixedSize() と Canvas#scale() の切り替え機能もつけてみたのだけど。画面の縦横を切り替えると、元に戻ってしまう。Activity 関係? View関係?を勉強し直さないとダメだな…。
サウンド再生も実験。まずは BGM を。oggファイルをres/raw/以下に置いて、MediaPlayer を使って再生。create() 後に prepare() を呼ぶとアプリが固まる。画面も真っ暗なまま。ググってみたが、SDKのバージョンによっては、create() の中で prepare() を呼んでいるから呼ばなくてもいい、という話も見かけた。とりあえずエミュレータ上では、実際呼ばなくても鳴っているように見える。
SurfaceView を破棄する際にBGMを停止しておかないとBGMが鳴りっぱなしになる模様。エミュレータ上では、だけど。
ループ再生させるには、OnCompletionListener を使うのかなと思ったけれど、setLooping() なるものもあるらしく。後者を指定するだけでいいのだろうか…。
ついでに、setFixedSize() と Canvas#scale() の切り替え機能もつけてみたのだけど。画面の縦横を切り替えると、元に戻ってしまう。Activity 関係? View関係?を勉強し直さないとダメだな…。
サウンド再生も実験。まずは BGM を。oggファイルをres/raw/以下に置いて、MediaPlayer を使って再生。create() 後に prepare() を呼ぶとアプリが固まる。画面も真っ暗なまま。ググってみたが、SDKのバージョンによっては、create() の中で prepare() を呼んでいるから呼ばなくてもいい、という話も見かけた。とりあえずエミュレータ上では、実際呼ばなくても鳴っているように見える。
SurfaceView を破棄する際にBGMを停止しておかないとBGMが鳴りっぱなしになる模様。エミュレータ上では、だけど。
ループ再生させるには、OnCompletionListener を使うのかなと思ったけれど、setLooping() なるものもあるらしく。後者を指定するだけでいいのだろうか…。
[ ツッコむ ]
以上、1 日分です。