やっと実装できました。

音楽再生するだけだから簡単だろうと思っていましたが意外と難関でした。







 曲が流れている時に他の曲を流すためには前の曲を止めないといけないんですネ。それを止めるためには今流れているのがなんという曲かを把握(取得)しなければなりません。そして曲を止めるのですが、止まってから次の曲が再生される一瞬の間だけ曲が流れていない状態になるんです。その時にエラーが起きるorz///


 原因は曲を番号で管理するという点にあります。int型変数で流れている曲を把握するのですが、止まった瞬間に空っぽになってしまいます。その際に”それはだめだよ”っていうことでエラーとなるのです。

 プログラミングで初めて知ったことなのですが、ゼロ0と空っぽは違うんですね。

 
 intをNULL許容型にして解決しました。

 
 と思ったら今度は再生メソッドが”NULL型はだめだよ”と言ってきました。まあこれはキャストして解決です。



・EXITの実装


 これも簡単そうでやっかいでした。EXITを押して直接終了処理をしてしまうとメイン関数がもつ終了メソッドと重複してしまうためエラーを起こします。
 
 そこで
public static bool escape=false

 というグローバル変数を作り、EXITを押すと

escape=true

 となる仕様にしました。グローバル変数は使わないほうがいいと言われているのであとで不都合が起きないか不安なとこです。




・今後の課題

  • 起動時にタイトル曲が流れるようにしたい
  • プレイ中esc押下でポーズさせる
  • ポーズ画面には 続ける タイトルに戻る のセレクトを用意



DTM ブログランキングへ