среда, 29 июня 2011 г.

Использование бэк музыки в silwerlight

Итак,возникла необходимость использовать музыку для фона в windows phone 7 приложении,причем специфично: в определенный момент (при наступлении события) воспроизводить звук в зависимости от параметров события.

нашел пример использования  и подравнял под себя,

вначале подключаем пространства xna


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


Далее инициализируем объект звуков



     private SoundEffect voice;
       private SoundEffectInstance SoundInstance;
При наступлении события производим поиск элемента в массиве(а лучше в arraylist или какой нибудь другой структуре).Когда убедились в подходящем событии открываем файл с путём к музыке и запускаем её.


void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
        {
....
for (int i=0 ; i < masx.Length;i++ )
            {
                if (masx[i] == lat)
                {
                    if (masy[i] == lon)
                   {
               ....

           using (var file = IsolatedStorageFile.GetUserStoreForApplication().OpenFile("tour.txt", FileMode.Open))
                           {
                               using (var fileReader = new StreamReader(file))
                               {
                                   while (!fileReader.EndOfStream)
                                   {
                                       string[] line = fileReader.ReadLine().Split('=');
                                    ...
                                     
                                           if (line[0] == "objsoun[" + i + "]")
                                           {
                                               LoadSoundInstance("tours/NatureOfNovorossArea/" + line[1], out voice, out SoundInstance);
                                               if (SoundInstance.State != SoundState.Playing)
                                               {
                                                   SoundInstance.Play();
                                               }

                                           }
                                   }

                               }
Код корявый и нуждается в оптимизации,но пока работает в тестовом проекте





Комментариев нет:

Отправить комментарий

Краткая шпаргалка по EtherChannel:

Протокол агрегации портов ( P ort Ag gregation P rotocol (PAgP)) и протокол управления агрегацией каналов ( L ink A ggregation C ontrol P ...