Xamarinのデフォルトではアプリが起動したら、再生されている音楽が停止されてしまいます。
音楽を再生する目的のアプリを開発しているのであれば、このままで良いのですが、通常のアプリではバックグラウンドで音楽を流したままにしたいはずです。
コード
FinishedLaunchingに
AVAudioSession.SharedInstance().SetCategory(AVAudioSessionCategory.Ambient);
というコードを追加します。
public override bool FinishedLaunching(UIApplication app, NSDictionary options) { AVAudioSession.SharedInstance().SetCategory(AVAudioSessionCategory.Ambient); global::Xamarin.Forms.Forms.Init(); LoadApplication(new App()); return base.FinishedLaunching(app, options); }
これは何を行っている?
これは、iOSのAPIです。よってSwiftやObjective-Cでも言語仕様により書き方は異なれど、同様のAPIを利用することになるかと思います。
AVAudioSessionはOSとアプリの仲介を行うクラスです。このクラスを用いて、アプリの実行時の音響をコントロールします。
そしてSetCategoryで指定できるCategoryは以下に記載されています。
デフォルトはSoloAmbientですが、これを音の再生の優先度が低く、音を再生しないアプリのCategoryとなるAmbientを指定しています。
他にも録音して再生するためのカテゴリplayAndRecordなどが存在します。
音楽や効果音も重要な演出ですが、ゲームでも現代は好きな音楽を聴きながらプレイすることが多いです。
ほとんどのアプリケーションがAmbientになるかなと思います。