У меня есть программа TTS (сторонняя сторона), и я написал приложение aС#, которое использует эту программу. (Введите в мое приложение и нажмите кнопку, чтобы переместить мышь и нажмите на стороннее приложение).
Мне нужно знать, закончилась ли речь или нет. Есть ли какие-либо идеи о том, как определить, звучит ли звуковая карта или нет?
Вы можете сделать это, используя обертку вокруг Direct X. Есть много примеров, просто Google для нее. Например, код С# можно найти здесь или здесь.
Вы можете использовать CSCore.
Загрузите его прямо здесь → https://github.com/filoe/cscore
Вставьте эти строки в консольный проект.
using System;
using CSCore.CoreAudioAPI;
namespace AudioDetector
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(IsAudioPlaying(GetDefaultRenderDevice()));
Console.ReadLine();
}
public static MMDevice GetDefaultRenderDevice()
{
using (var enumerator = new MMDeviceEnumerator())
{
return enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Console);
}
}
public static bool IsAudioPlaying(MMDevice device)
{
using (var meter = AudioMeterInformation.FromDevice(device))
{
return meter.PeakValue > 0;
}
}
}
}
Воспроизведение музыки на YouTube, музыкальном проигрывателе и т.д.
Запустите программу.
Он автоматически уведомляет (true/false), если в данный момент воспроизводится звук или нет.
Вы можете проверить, испускает ли приложение звуки. Взгляните на это: получение текущего уровня вывода Windows на уровне громкости, как показано в аудио Mixer