2

Windows Phone のバックグラウンドでオーディオを再生したいと考えています。Microsoft のこのサンプルのようなコードをいくつか書きました ( http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202978(v=vs.105).aspx ) が、私のアプリではユーザーバックグラウンド エージェントが再生する必要がある uri を選択する機会があります。しかし、アプリの audiotrack 要素をバックグラウンド エージェントの audiotrack 要素に設定する方法がわかりません。

エージェントで次のコードを試しました。

private static AudioTrack _streamTrack;
public static AudioTrack StreamTrack { get { return _streamTrack; } set { _streamTrack = value; } }

そして、私のアプリでこの変数を次のように設定してみてください:

AudioPlayer.StreamTrack = new AudioTrack(new Uri(stream.StreamUri, UriKind.Absolute), stream.StreamName, stream.StreamGenre, stream.StreamGenre, null);

しかし、うまくいきません。この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

これを実現する 1 つの方法は、XNA ライブラリを使用することです。

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;

次に、効果音を宣言します

SoundEffect _BGMUSIC;

私は効果音をロードするこの方法を使用します

 //Put this in your main method
 LoadSound("sfx/piano.wav", out _BGMUSIC);


 //put this method in the same class
 private void LoadSound(String SoundFilePath, out SoundEffect Sound)
        {
            // For error checking, assume we'll fail to load the file.
            Sound = null;

            try
            {
                // Holds informations about a file stream.
                StreamResourceInfo SoundFileInfo = App.GetResourceStream(new Uri(SoundFilePath, UriKind.Relative));

                // Create the SoundEffect from the Stream
                Sound = SoundEffect.FromStream(SoundFileInfo.Stream);
                FrameworkDispatcher.Update();
            }
            catch (NullReferenceException)
            {
                // Display an error message
                MessageBox.Show("Couldn't load sound " + SoundFilePath);
            }
        }

最後に、効果音を再生できます

 _BGMUSIC.Play();
于 2013-03-10T19:27:12.863 に答える