Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не работает программа. / 4 сообщений из 4, страница 1 из 1
21.03.2014, 13:15
    #38592856
Roman Rozin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает программа.
В строке waveIn.RecordingStopped += new EventHandler(waveIn_RecordingStopped); ставит ошибку Cannot implicitly convert type 'System.EventHandler' to 'System.EventHandler<NAudio.Wave.StoppedEventArgs>'.
Как исправить?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Windows.Forms;
using System.IO;
using NAudio.Wave;
using NAudio.FileFormats;
using NAudio.CoreAudioApi;
using NAudio;

//На форме есть две кнопки - одна для начала записи, другая - для окончания
namespace SpeechProject
{
    public partial class Form1 : Form
    {
        // WaveIn - поток для записи
        WaveIn waveIn;
        //Класс для записи в файл
        WaveFileWriter writer;
        //Имя файла для записи
        string outputFilename = "ville.wav";

        public Form1()
        {
            InitializeComponent();
        }
        //Получение данных из входного буфера 
        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);
            }
        }
        //Завершаем запись
        void StopRecording()
        {
            MessageBox.Show("Stop Recording");
            waveIn.StopRecording();
        }
        //Окончание записи
        private void waveIn_RecordingStopped(object sender, EventArgs e)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new EventHandler(waveIn_RecordingStopped), sender, e);
            }
            else
            {
                waveIn.Dispose();
                waveIn = null;
                writer.Close();
                writer = null;
            }
        }
        //Начинаем запись
        private void button1_Click(object sender, EventArgs e)
        {
        try
        {
            MessageBox.Show("Start Recording");
            waveIn = new WaveIn();
            //Дефолтное устройство для записи (если оно имеется)
            waveIn.DeviceNumber = 0;
           //Прикрепляем к событию DataAvailable обработчик, возникающий при наличии записываемых данных
            waveIn.DataAvailable += waveIn_DataAvailable;
            //Прикрепляем обработчик завершения записи
            waveIn.RecordingStopped += new EventHandler(waveIn_RecordingStopped);
            //Формат wav-файла - принимает параметры - частоту дискретизации и количество каналов(здесь mono)
            waveIn.WaveFormat = new WaveFormat(8000, 1);
            //Инициализируем объект WaveFileWriter
            writer = new WaveFileWriter(outputFilename, waveIn.WaveFormat);
            //Начало записи
            waveIn.StartRecording();
            }
            catch (Exception ex)
        { MessageBox.Show(ex.Message); }
        }
        //Прерываем запись
        private void button2_Click(object sender, EventArgs e)
        {
            if (waveIn != null)
            {
                StopRecording();
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {

        }
        

    }
}
...
Рейтинг: 0 / 0
21.03.2014, 21:17
    #38593345
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает программа.
может это в винформс?
...
Рейтинг: 0 / 0
22.03.2014, 12:34
    #38593540
Roman Rozin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает программа.
Да, в Windows Forms.

Модератор: Тема перенесена из форума "Программирование".
...
Рейтинг: 0 / 0
23.03.2014, 14:05
    #38593928
D129
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает программа.
Roman Rozin,

Поступите просто - сотрите все после waveIn.RecordingStopped

потом напишите += и два раза нажмите Таб.

Автоматически создастся обработчик, с нужной сигнатурой.

В него и поместите ваш код.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не работает программа. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]