DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Інститут ІКНІ Кафедра АСУ ЗВІТ До лабораторної роботи № 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.Enabled = true; //time.Start(); } private void button2_Click(object sender, EventArgs e) // stop button { if (wi != null) { StopRecording(); } } private void label4_Click(object sender, EventArgs e) { } private void textBox4_TextChanged(object sender, EventArgs e) { } } } Результат роботи програми: / Висновок Виконуючи лабораторну роботу було розроблено програму для взаємодії із мікрофоном та для візуалізації звукових коливань.
Антиботан аватар за замовчуванням

08.11.2018 17:56

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

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

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

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!