Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Робота з мікрофоном

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
КН
Кафедра:
АСУ

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Проблемно-орієнтовані методи та засоби комп’ютерних інформаційних технологій

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Інститут ІКНІ Кафедра АСУ ЗВІТ До лабораторної роботи № 4 На тему: «Робота з мікрофоном» З дисципліни: «Методи і засоби комп’ютерних інформаційних технологій» Львів – 2018 Хід роботи Код програми: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Diagnostics; using NAudio.Wave; using NAudio; using System.IO; using NAudio.FileFormats; using NAudio.CoreAudioApi; namespace naudio_mic_realtime_visualisation { public partial class Form1 : Form { int n = 4000; // number of x-axis pints //Stopwatch time = new Stopwatch(); WaveIn wi; WaveFileWriter writer; Queue<double> myQ; public Form1() { InitializeComponent(); myQ = new Queue<double>(Enumerable.Repeat(0.0, n).ToList()); // fill myQ w/ zeros chart1.ChartAreas[0].AxisY.Minimum = -15000; chart1.ChartAreas[0].AxisY.Maximum = 15000; } private void Form1_Load(object sender, EventArgs e) { //------- } void wi_DataAvailable(object sender, WaveInEventArgs e) { for (int i = 0; i < e.BytesRecorded; i += 2) { myQ.Enqueue(BitConverter.ToInt16(e.Buffer, i)); myQ.Dequeue(); } } private void timer1_Tick(object sender, EventArgs e) { try { chart1.Series["Series1"].Points.DataBindY(myQ); } catch { Console.WriteLine("No bytes recorded"); } } //Отримання даних із вхідного буфера void waveIn_DataAvailable(object sender, WaveInEventArgs e) { if (this.InvokeRequired) { this.BeginInvoke(new EventHandler<WaveInEventArgs>(waveIn_DataAvailable), sender, e); } else { //запис даних із буфера у файл writer.WriteData(e.Buffer, 0, e.BytesRecorded); } } //кінець запису private void waveIn_RecordingStopped(object sender, EventArgs e) { if (this.InvokeRequired) { this.BeginInvoke(new EventHandler(waveIn_RecordingStopped), sender, e); } else { wi.Dispose(); wi = null; writer.Close(); writer = null; } } void StopRecording() { MessageBox.Show("StopRecording"); wi.StopRecording(); } //----------------------------------- private void button1_Click(object sender, EventArgs e) // start button { string str = textBox1.Text; string Y = textBox4.Text; int y = System.Convert.ToInt32(Y); string filename = textBox2.Text; chart1.ChartAreas[0].AxisY.Minimum = -y; chart1.ChartAreas[0].AxisY.Maximum = y; wi = new WaveIn(); wi.DeviceNumber = System.Convert.ToInt32(str); // choose a device //прикріплення до події DataAvailable обробника, який виникає при наявності даних для запису wi.DataAvailable += waveIn_DataAvailable; //прикріплення обробника завершення запису wi.RecordingStopped += new EventHandler<NAudio.Wave.StoppedEventArgs>(waveIn_RecordingStopped); writer = new WaveFileWriter(filename, wi.WaveFormat); wi.StartRecording(); wi.WaveFormat = new WaveFormat(4, 16, 1); // (44100, 16, 1); wi.DataAvailable += new EventHandler<WaveInEventArgs>(wi_DataAvailable); timer1....
Антиботан аватар за замовчуванням

08.11.2018 17:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини