1

バックグラウンド エージェントからオーディオ ファイル (基本的にはサウンド) を再生できるようにしたいと考えています。私は次の2つのアプローチを使用しています:

1)

    SoundEffectInstance ClockTickInstance;
        StreamResourceInfo ClockTickStream;
        SoundEffect ClockTickSound;
        try {
        ClockTickStream = Application.GetResourceStream(new Uri(
          @"AudioFiles/NewHighScore.wav", UriKind.Relative));
                ClockTickSound = SoundEffect.FromStream(ClockTickStream.Stream);
                ClockTickInstance = ClockTickSound.CreateInstance();
                ClockTickInstance.IsLooped = true;
                ClockTickInstance.Volume = 1.0f;
                ClockTickInstance.Pitch = 1.0f;
                ClockTickInstance.Play();
                ClockTickInstance.Stop();
}

また

2)

var localFolder = Package.Current.InstalledLocation;
Stream fileStream = await localFolder.OpenStreamForReadAsync("NewHighScore.wav");

byte[] buffer = new byte[fileStream.Length];
fileStream.Read(buffer, 0, System.Convert.ToInt32(fileStream.Length));
fileStream.Close();
SoundEffect soundefct = new SoundEffect(buffer, 16000, AudioChannels.Mono);
FrameworkDispatcher.Update();
soundefct.Play();

xaml.cs ファイル (フォアグラウンド アプリなど) からコードを実行すると、すべて正常に動作し、サウンドが再生されます。

しかし、バックグラウンド エージェントからは、コードは実行されますが、音は聞こえません。

何が問題なのですか?

次の記事では、アプリがバックグラウンドで実行されているときに使用できる API のリストを示しています - http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662941(v=vs.105)。 aspx

4

0 に答える 0