私はこれを理解することはできません。テキストボックスをクリックすると、1分間に何回も起動するタイマーが設定されます。タイマーはうまく動作しているようですが、1分あたりのサイクル数が少なくなると、影響を受ける音量が低くなります。 XNAフレームワークの仕組みを理解してはいけません。WP7 SoundEffect音量が小さくなります
private System.Threading.Timer tmrMetronome_m;
private void tbTempo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
TextBlock tb = (TextBlock)sender;
int iBeatsPerMinute = int.Parse(tb.Text);
int iMS = 1000 * 60/iBeatsPerMinute;
if (this.tmrMetronome_m != null)
{
this.tmrMetronome_m.Change(new TimeSpan(0), new TimeSpan(0, 0, 0, 0, iMS));
}
else
{
this.tmrMetronome_m = new System.Threading.Timer(MetronomeTick, null, new TimeSpan(0), new TimeSpan(0, 0, 0, 0, iMS));
}
}
private void MetronomeTick(object state)
{
using (System.IO.Stream strWAV = TitleContainer.OpenStream("wav/Beat.wav"))
{
SoundEffect effect = SoundEffect.FromStream(strWAV);
FrameworkDispatcher.Update();
effect.Play();
}
}
私は最終的に開発者ライセンスを購入し、そのソフトウェアを電話機に導入しました。物理デバイス上に問題はありません。この時点では、エミュレータだけがこの問題を抱えているように見えます。 – Jeremy