Какая есть бесплатная библиотека на C# для воспроизведения и записи аудио на Linux+Windows? Мое текущее приложение отлично работает на Windows, однако разработка идет для Linux, соответственно используемая мной библиотека NAudio там не работает. За последние несколько дней перерыл почти все либы, что были у меня на слуху как кросс-платформенные (NAudio.Core, CSCore, VLC, Bass (ошибка, связанная с Bass.dll)), но в них нельзя было даже определить Sound API для Linux (там только Wasapi, DS, Wave). Может кто-то сталкивался с этим? Мне нужно буквально воспроизвести *.WAV файл и записать аудио через микрофон, все. Желательно в ответе не просто ссылку на репу, а пример с объяснением, ибо за эти дни я устал

17 Авг 2023 в 19:52
126 +2
1
Ответы
1

Одной из библиотек, которую вы можете использовать для воспроизведения и записи аудио на Linux и Windows, является NAudio. NAudio предоставляет возможности работы с аудио на обеих платформах. Вот пример кода, который позволит вам воспроизводить *.WAV файл и записывать аудио через микрофон с использованием NAudio:

using NAudio.Wave;
using System;
class Program
{
static void Main {
// Проигрывание аудио из *.Wav файла
using varaudioFile=newWaveFileReader("audio.wav")var audioFile = new WaveFileReader("audio.wav")varaudioFile=newWaveFileReader("audio.wav") using varoutputDevice=newWaveOutEvent()var outputDevice = new WaveOutEvent()varoutputDevice=newWaveOutEvent() {
outputDevice.InitaudioFileaudioFileaudioFile;
outputDevice.Play;
while outputDevice.PlaybackState==PlaybackState.PlayingoutputDevice.PlaybackState == PlaybackState.PlayingoutputDevice.PlaybackState==PlaybackState.Playing {
System.Threading.Thread.Sleep100100100;
}
}
// Запись аудио с микрофона
using varcapture=newWaveInEvent()var capture = new WaveInEvent()varcapture=newWaveInEvent() {
capture.WaveFormat = new WaveFormat44100,144100, 144100,1; // Задаем формат записи
capture.DataAvailable += sender,esender, esender,e =>
{
// Обработка полученных аудио данных
Console.WriteLine"Audiodatareceived""Audio data received""Audiodatareceived";
};
capture.StartRecording;
Console.WriteLine"Recording.Pressanykeytostop...""Recording. Press any key to stop...""Recording.Pressanykeytostop...";
Console.ReadKey;
capture.StopRecording;
}
}
}

Прежде чем запустить этот код, вам нужно установить пакет NAudio через NuGet в вашем проекте. Для этого в Visual Studio откройте консоль NuGet Package Manager и выполните следующую команду:

Install-Package NAudio

После этого вы сможете воспроизводить *.Wav файлы и записывать аудио с микрофона на обеих платформах. Надеюсь, это поможет вам в решении вашей проблемы.

16 Апр 2024 в 16:04
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир