ضبط و ذخیره صدا در #C
برای ضبط و ذخیره صدا در زبان برنامهنویسی #C، شما به چندین مرحله نیاز دارید. در اینجا بهصورت جامع به این مراحل میپردازیم.
استفاده از کتابخانه NAudio
NAudio یکی از کتابخانههای محبوب برای کار با صدا در #C است. این کتابخانه امکانات زیادی برای ضبط، پخش و پردازش صدا ارائه میدهد.
نصب NAudio
ابتدا باید NAudio را نصب کنید. میتوانید این کار را از طریق NuGet Package Manager انجام دهید:
```
Install-Package NAudio
```
ایجاد کلاس ضبط صدا
در مرحله بعد، یک کلاس برای ضبط صدا ایجاد کنید. در این کلاس، از `WaveInEvent` برای ضبط صدا استفاده میشود.
```csharp
using NAudio.Wave;
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)
{
if (waveFile != null)
{
waveFile.Write(e.Buffer, 0, e.BytesRecorded);
waveFile.Flush();
}
}
public void StopRecording()
{
waveSource.StopRecording();
waveFile?.Dispose();
waveSource.Dispose();
}
}
```
استفاده از کلاس ضبط
حالا که کلاس ضبط صدا را ایجاد کردید، میتوانید از آن در برنامهتان استفاده کنید. بهعنوان مثال:
```csharp
class Program
{
static void Main(string[] args)
{
AudioRecorder recorder = new AudioRecorder();
string outputFilePath = "recordedAudio.wav";
Console.WriteLine("ضبط صدا را شروع کنید. برای توقف، کلید Enter را فشار دهید.");
recorder.StartRecording(outputFilePath);
Console.ReadLine(); // منتظر فشار دادن Enter
recorder.StopRecording();
Console.WriteLine("ضبط صدا متوقف شد.");
}
}
```
نکات مهم
- تنظیمات فرمت صدا: شما میتوانید فرمت و کیفیت صدا را با تغییر پارامترهای `WaveFormat` تغییر دهید.
- مدیریت استثناها: بهتر است استثناها را مدیریت کنید تا از مشکلات احتمالی جلوگیری شود.