2

Windows Phone 8 アプリケーションを作成していて、タイマーが起動したときにオーディオ ファイル (この場合は Metronome920.wav、0.07 秒、6 kb ファイル) を再生しようとしています。タイマーが起動するとファイルが再生されますが、おそらく 40 ~ 50% の確率で、再生時にパチパチ音をたてたり、ポップ音がしたりして、きれいに再生されません。アプリケーションは非常にシンプルで、タイマー/オーディオ再生のみが組み込まれています。Visual Studio で新しいプロジェクトを開始したときに作成された既定の GUI から GUI を変更していません。

これは、これがスレッドの問題である可能性があると私に信じさせます。何か案は?

namespace AudioTest1
{
    class MyTimer
    {
        private Timer t; //Windows.Threading.Timer

        public MyTimer()
        {
            t = new Timer(new TimerCallback(timer_Tick), null, 0, 500);
        }

        private void PlaySound()
        {
            using (var stream = TitleContainer.OpenStream("Sounds\\Metronome920.wav"))
            {
                var effect = SoundEffect.FromStream(stream);
                FrameworkDispatcher.Update();
                effect.Play();
            }
        }
        private void timer_Tick(object sender)
        {
                PlaySound();
        }

    }
}

MainPage.xaml.cs の次のコードから MyTimer オブジェクトを作成しています。

    public MainPage()
    {
        InitializeComponent();
        MyTimer m = new MyTimer();
    }

編集: デバイスでの実行時に何が起こっているかのオーディオ ファイルは、次の場所にあります:こちら

4

1 に答える 1

1

電話デバイスのハードシャットダウン/再起動を試してみることをお勧めします。私はあなたと同じような結果を出していましたが、デバイスをハードリセットすると、吃音が止まりました。通常のTimer、DispatcherTimer、およびSoundEffectの代わりにMediaElementを使用してこれを試しました。ここで私のサンプルソリューションを入手できます:http ://sdrv.ms/Rfb7UM

于 2012-12-07T21:16:12.443 に答える