کد ضبط صدا در سی شارپ
ضبط صدا در سی شارپ یکی از موارد جالب و کاربردی است که میتوان از آن در برنامههای مختلف استفاده کرد. برای این کار، میتوان از کتابخانههای مختلفی بهره برد. در اینجا، ما از `NAudio`، یک کتابخانه قوی و رایگان برای کار با صدا در .NET استفاده میکنیم.
ابتدا، باید کتابخانه NAudio را به پروژه خود اضافه کنید. این کار را میتوانید از طریق NuGet Package Manager انجام دهید:
```bash
Install-Package NAudio
```
راهاندازی ضبط صدا
پس از نصب کتابخانه، باید کدی برای ضبط صدا بنویسید. در زیر یک نمونه کد ساده برای ضبط صدا آورده شده است:
```csharp
using NAudio.Wave;
using System;
using System.Windows.Forms;
public class AudioRecorder
{
private WaveInEvent waveSource;
private WaveFileWriter waveFile;
public void StartRecording(string outputFilePath)
{
waveSource = new WaveInEvent();
waveSource.WaveFormat = new WaveFormat(44100, 1); // فرمت صدای مونو
waveSource.DataAvailable += OnDataAvailable;
waveFile = new WaveFileWriter(outputFilePath, waveSource.WaveFormat);
waveSource.StartRecording();
}
private void OnDataAvailable(object sender, WaveInEventArgs e)
{
waveFile.Write(e.Buffer, 0, e.BytesRecorded);
waveFile.Flush();
}
public void StopRecording()
{
waveSource.StopRecording();
waveFile.Dispose();
waveSource.Dispose();
}
}
```
توضیحات کد
- WaveInEvent: این کلاس برای ضبط صدا استفاده میشود. ما میتوانیم فرمت صدا را تعیین کنیم.
- DataAvailable: این رویداد هر بار که دادههای جدید ضبط میشود، فراخوانی میشود. در اینجا دادهها به فایل نوشته میشوند.
- WaveFileWriter: این کلاس به ما اجازه میدهد تا دادههای صوتی را در یک فایل WAV ذخیره کنیم.
نحوه استفاده
برای استفاده از این کلاس در برنامه خود، میتوانید به صورت زیر عمل کنید:
```csharp
AudioRecorder recorder = new AudioRecorder();
recorder.StartRecording("output.wav");
// بعد از مدتی
recorder.StopRecording();
```
نتیجهگیری
این کد ساده به شما امکان ضبط صدا را میدهد. با تغییر پارامترها و افزودن امکانات بیشتر، میتوانید قابلیتهای بیشتری به برنامه خود اضافه کنید. اینجا تنها یک شروع است. بر اساس نیازهای خود، میتوانید این کد را گسترش دهید.