藉助XNA Framework,讓Silverlight播放wav音訊

Bonjour-你好發表於2013-07-25

在Silverlight上播放音訊,就會想起用 MediaElement 類,但是卻不支援wav的容器,度娘後發現有一個“WaveMediaStreamSource”的可以支援,但從論壇某一個問題帖中得知,這個WaveMediaStreamSource對於需要迴圈播放還需要作出修改。經過G搜尋後,發現原來可以利用 XNA 的Framework 的,故在此記錄一下,方便以後可能會用得上。


1、將wav檔案新增到專案中後,需要把wav檔案的生成操作改為“內容”。


2、新增  Microsoft.Xna.Framework 引用到專案。


3、最後主要程式碼部分如下:

using System;
using System.Windows;
using System.Windows.Controls;
using Microsoft.Xna.Framework.Audio;

namespace SilverlightApplication1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void btnPlaySound_Click(object sender, RoutedEventArgs e)
        {
            var soundStream = Application.GetResourceStream(new Uri("ccheer.wav", UriKind.RelativeOrAbsolute));
            var effect = SoundEffect.FromStream(soundStream.Stream);
            SoundEffectInstance engineInstance = effect.CreateInstance();
            engineInstance.IsLooped = true;
            engineInstance.Play();
        }
    }
}


最後附上一個小例子:http://download.csdn.net/detail/kumapower/5811201

相關文章