2012年1月26日木曜日

Silverlight 5 のサウンド機能


Silverlight 5 では、ゲームの効果音などに活用するのに適したサウンド機能が充実しています。
もともと「XNA Game Studio」というゲーム開発環境で用いられていた XNA Framework と同じようなクラスが提供されるようです。
使い方を調べていたとき、下記のサイトがとても参考になりました。
Silverlight 5 の新機能その4 Realtime Sound (low‐latency Audio)

下記のような実装で、uriString に "Sounds/click01.wav" などの効果音ファイルのを指定することで、効果音を鳴らせます。
(上記の場合、click01.wav は プロジェクトフォルダの下の Soundsフォルダの下に格納しています)

/// <summary>
/// サウンドを鳴らす
/// </summary>
/// <param name="uriString"></param>
/// <param name="isLooped"></param>
private static void Play(string uriString, bool isLooped)
{
 StreamResourceInfo streamInfo = Application.GetResourceStream(new Uri(uriString, UriKind.Relative));
 SoundEffect soundEffect = SoundEffect.FromStream(streamInfo.Stream);
 SoundEffectInstance instance = soundEffect.CreateInstance();
 instance.IsLooped = isLooped;
 instance.Play();
}