Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)

Бодибилдинг
Программы тренировок для занятий штангой, гантелями; описание тренажеров

Я записываю курсы!
  Курс валют

НБУ курс евро






Воспроизведение звуковых wav-файлов средствами c#



Сегодня я хочу показать каким образом в .NET-проектах возможно работать с медиафайлами. Для начала рассмотрим процесс открытия и запуска звукового файла формата .wav.

Для этого создадим простой WindowsForms-проект.
Поместим на главную форму две кнопки для запуска и остановки проигрывания звукового файла:

Соответственно, для каждой кнопки подпишемся на событие Click. На данный момент код файла Form1.cs должен выглядеть так:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Sound
{
    public partial class Form1 : Form
    {        
        public Form1()
        {
            InitializeComponent();           
        }

        private void Start_Click(object sender, EventArgs e)
        {
            
        }

        private void Stop_Click(object sender, EventArgs e)
        {
            
        }
    }
}

Следующий шаг состояит в том, что бы использовать возможности класса SoundPlayer. Во первых, не мешает подключить пространство имен System.Media, в котором и находится интересующий нас класс. Затем следует создать экземпляр данного класса для последующего использования его в работе со звуковыми файлами.

       
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;//подключили пространство имен SoundPlayer

namespace Sound
{
    public partial class Form1 : Form
    {
        
        SoundPlayer sp;//объявляем поле типа SoundPlayer
        
        public Form1()
        {
            InitializeComponent();
            
            //создаем экземпляр класса SoundPlayer
            sp = new SoundPlayer();
        }

        private void Start_Click(object sender, EventArgs e)
        {
            
        }

        private void Stop_Click(object sender, EventArgs e)
        {
            
        }
    }
}

Следующий шаг заключается в указании для объекта sp нашего звукового файла. Для начала используем файл, хранящийся в ресурсах проекта. Что бы добавить в ресурсы новый файл, дважды щелкните на файле Resources.resx:

После этого откроется вкладка ресурсов, где нажмите кнопку Add Resource, как показано на рисунке. Откроется диалоговое окно выбора файла. Выделите необходимый и нажмите кнопку «Открыть»:

В итоге в ресурсах появится следующий файл:

При чем, имя ресурса по умолчанию совпадает с именем исходного файла. Заметьте, что копия исходного файла теперь также находится в проекте в папке Resources:

Теперь дело осталось за малым – поместить потоковый файл ресурсов в свойство Stream нашего SoundPlayer и добавить методы запуска и остановки проигрывания файла в соответствующих обработчиках событий:

   
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace Sound
{
    public partial class Form1 : Form
    {
        
        SoundPlayer sp;//объявляем поле типа SoundPlayer
        
        public Form1()
        {
            InitializeComponent();
            
            //создаем экземпляр класса SoundPlayer
            sp = new SoundPlayer();
            
            //вытягиваем из ресурсов звуковой файл
            sp.Stream = Properties.Resources.
                    Rainbow_Temple_of_The_King;
            
        }

        private void Start_Click(object sender, EventArgs e)
        {
            sp.Play();//начинаем проигрывание
        }

        private void Stop_Click(object sender, EventArgs e)
        {
            sp.Stop();//останавливаем проигрывание
        }
    }
}

Теперь все готово для тестового запуска приложения. Попробуйте поработать с имеющимися на форме кнопками. Как видим, метод Play запускает проигрывание файла, а метод Stop останавливает. Если мы хотим, что б по окончанию проигрывания звуковой файл вновь начинал звучать с начала следует использовать метод PlayLoop. В этом случае файл циклически будет звучать пока мы его принудительно не остановим.

Такой вариант подходит если мы жестко задаем один единственный файл, который может звучать при работе приложения. В случае надобности выбора для прослушивания произвольного звукового файла, следует воспользоваться элементом OpenFileDialog. Что бы добавить данный элемент на форму, откройте панель инструментов и перетащите на форму ланный контрол:

Данный контрол относится к не отображаемым на форме во время выполнения приложения. Однако, в нижней панели он появляется и мы имеем возможность также работать с ним из дизайнера:

Поместим на форму третью кнопку, которая будет давать пользователю возможность выбора на своем компьютере произвольный звуковой файл:

Также, для кнопки создадим обработчик события Click:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace Sound
{
    public partial class Form1 : Form
    {
        
        SoundPlayer sp;//объявляем поле типа SoundPlayer
        
        public Form1()
        {
            InitializeComponent();
            sp = new SoundPlayer();//создаем экземпляр класса SoundPlayer           
        }

        private void Start_Click(object sender, EventArgs e)
        {
            sp.Play();//начинаем проигрывание
        }

        private void Stop_Click(object sender, EventArgs e)
        {
            sp.Stop();//останавливаем проигрывание
        }

        private void Choose_Click(object sender, EventArgs e)
        {
            //если пользователь выбрал файл
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //если пользователь выбрал файл типа wav
                if(openFileDialog1.FileName.Substring(
                        openFileDialog1.FileName.Length - 3, 3)
                   == "wav")
                    sp.SoundLocation = openFileDialog1.FileName;
            }
        }
    }
}

Сдесь мы открываем окно выбора файлом посредством вызова метода ShowDialog и проверяем результат данного диалога. Если пользователь выбрал требуемый файл, мы обязательно должны проверить формат этого файла. Обратите внимание, как просто мы можем это осуществить без использования регулярных выражений а лишь помня, что строки являются массивами типа char. Поэтому методом Substring мы просто выделяем подстроку из имени файла, содержащую всего последние три символа, которые и представляют тип файла. Однако, можно прямо в самом контроле задать свойство на отображение только определенного типа файлов:

openFileDialog1.Filter = "File .wav|*.wav";

Сдесь мы задали фильтр для отображения только файлов типа wav, а в строке состояния отображается описание файла "File .wav". Можем также укзать более расширенный фильтр:

openFileDialog1.Filter = 
    "WAV files (*.wav)|*.wav|All files (*.*)|*.*";

Так, мы даем возможность выбора переключения между режимами отображения только файлов *.wav, или всех типов файлов. Соответственно, если пользователь выбрал подходящий тип файла, то мы без проблем можем его воспроизвести.

На этом я закончу данную статью. В следующей статье я покажу более распространенный вариант открытия любых файлов мультимедия, которые поддерживает WindowsMediaPlayer. Его мы и используем в следующей статье.



Больше информации читайте по теме:

Текстовый редактор на c# | Skillcodingredactor
Электронные часы на c# (через потоки)
Пользовательский TextBox на C#
Windows Forms c# roll over button
Запрет на переключение активного CheckBox на c#
Иконка windows forms приложения – динамическая генерация из Bitmap на c#
Поиск вложенного контрола во внешнем - обобщенный метод c#
c# - Доступ к вложенным (внутренним) элементам (контролам)
Типизированный поиск дочерних контролов (элементов) в родительском на c#
C# - Проверка ввода в TextBox (ввод только определенных символов)
Заполнение (загрузка) ListBox из xml файла
Windows Forms окна произвольной формы
Открытие второй формы и передача данных в главную форму
Нумерация строк в DataGridView
Цветной ListBox на c#
Использование Windows Media Player в приложениях Windows Forms



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Аноним    18.08.2010 18:05:18
        

А зачем уж так разжевывать? Многое и так понятно.


        Павел    03.09.2010 6:25:49
        

А как добавить возможность произвольного перемещения по файлу?


        Дмитрий    26.02.2011 12:46:35
        

а если mp3 файлы воспроизводить ? как это сделать ?

46.118.73.231


        tema    16.04.2012 21:03:50
        

Спасибо огромное , очень помогло.

46.73.221.178


        tema    16.04.2012 21:04:36
        

Спасибо огромное , очень помогло.

46.73.221.178




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Черный список покупателей
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок