Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/128: Рейтинг темы: голосов - 128, средняя оценка - 4.80
 Аватар для Старик
0 / 0 / 0
Регистрация: 14.11.2009
Сообщений: 8

Запись звука с микрофона

14.11.2009, 17:52. Показов 27417. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попытался записать звук с микрофона компиляция ошибок не дает но при запуске виснет.
Помогите разобраться.

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.DirectSound;
using Buffer = Microsoft.DirectX.DirectSound.Buffer;
using System.IO; 
 
 
namespace DirectSound_
{
    public partial class Form1 : Form
    {
        Device device;
        Capture capture;
        Buffer buffer;
        BufferDescription bufferDesc;
        CaptureBuffer captureBuffer;
        WaveFormat waveFormat;
        CaptureBufferDescription captureBuffDesc;
        MemoryStream stream;
        byte[] streamBuffer; 
 
        public Form1()
        {
            InitializeComponent();
            
            device = new Device(); // Setup DirectSound 
 
            waveFormat = new WaveFormat();// Load the sound 
            waveFormat.BitsPerSample = 8;
            waveFormat.BlockAlign = 1;
            waveFormat.Channels = 1;
            waveFormat.AverageBytesPerSecond = 20500;
            waveFormat.SamplesPerSecond = 20500;
            waveFormat.FormatTag = WaveFormatTag.Pcm;
 
            bufferDesc = new BufferDescription();
            bufferDesc.Format = waveFormat;
            bufferDesc.BufferBytes = 100000;
            bufferDesc.ControlPositionNotify = true;
            bufferDesc.ControlFrequency = true;
            bufferDesc.ControlPan = true;
            bufferDesc.ControlVolume = true;
 
            buffer = new Buffer(bufferDesc, this.device);
 
            device.SetCooperativeLevel(this, CooperativeLevel.Priority); // Set the cooperative level 
 
            capture = new Capture();
            
            captureBuffDesc = new CaptureBufferDescription();
            captureBuffDesc.BufferBytes = 100000;
            captureBuffDesc.Format = this.waveFormat;
 
            captureBuffer = new CaptureBuffer(captureBuffDesc, capture);
            
            streamBuffer = new byte[100000];
            
            
            for (int i = 0; i < 100000; i++)
            {
                
                streamBuffer[i] = 0;
            }
            stream = new MemoryStream(streamBuffer); 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            this.captureBuffer.Read(0, this.stream, 100000, LockFlag.None);
            buffer.Write(0, this.stream, (int)this.stream.Length, LockFlag.EntireBuffer);
            buffer.Play(0, BufferPlayFlags.Looping); 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            buffer.Stop(); 
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            this.captureBuffer.Start(true); 
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            this.captureBuffer.Stop(); 
        }
        
 
 
    }
}
прикремпил весь проект на вский случай
Вложения
Тип файла: zip DirectSound;.zip (42.7 Кб, 722 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2009, 17:52
Ответы с готовыми решениями:

Запись звука с микрофона
Всем привет. Дорогие форумчане, у меня возникла проблема. В ходе решения задачи понадобилось записывать звук с микрофона. И не просто...

Запись звука с микрофона
Всем привет, думаю тема баян, но что-то не прёт меня с микрофонов... Пробовал делать через DirectX.DirectSound, но те исходники, которые...

Запись звука с микрофона и сохранение в wav
Добрый день, как записать wav файл с микрофона? Частота дискретизации = 122кб/с моно. Спасибо.

20
0 / 0 / 0
Регистрация: 09.08.2013
Сообщений: 16
06.10.2014, 16:18
Студворк — интернет-сервис помощи студентам
Уважаемый Remi воспользовался вашим кодом, работает все нормально без проблем. В меня задача стоит передавать разговор сразу в сеть. Соответственно передавать необходимый формат(24000, 16, 1). Когда меняю _waveFormat.BitsPerSample на 16 выскакивает ошибка: "Значение не попадает в ожидаемый диапазон.", не могу понять
где мне поменять значение формат или размер буфера????
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2014, 16:18
Помогаю со студенческими работами здесь

Спектр звука с микрофона
Пишу программу которая должна выводить график амплитудного спектра звука, посылаемого с микрофона. Программа должна считывать звук...

Захват звука с микрофона и воспроизведение
Здравствуйте! Подскажите чем можно брать звук с микрофона, чтоб можно было его передавать по сети и воспроизводить с другой стороны?

Библиотеки для записи звука с микрофона
Подскажите пожалуйста библиотеки для записи звука с микрофона. NAudio не предлагать, т.к. его я и сам знаю)

Запись с микрофона и динамиков (Запись телефонного разговора)
Доброй ночи! Уважаемые граждане, помогите примером кода для записи в wav файл с микрофона и динамиков - запись телефонного разговора. ...

Голосовое управление: как получить график звука с микрофона
Хочу сделать голосовое управление. Знаю что нужно получить график(время, амплитуда) и сравнивать с образцом. Проблема 1: как его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru