Как узнать, играет ли звук с помощью C #?

1

У меня есть программа TTS (сторонняя сторона), и я написал приложение aС#, которое использует эту программу. (Введите в мое приложение и нажмите кнопку, чтобы переместить мышь и нажмите на стороннее приложение).

Мне нужно знать, закончилась ли речь или нет. Есть ли какие-либо идеи о том, как определить, звучит ли звуковая карта или нет?

Теги:
audio

3 ответа

2
Лучший ответ

Вы можете сделать это, используя обертку вокруг Direct X. Есть много примеров, просто Google для нее. Например, код С# можно найти здесь или здесь.

  • 0
    Существует целая куча мета-обсуждений вокруг ответов только по ссылкам - meta.stackexchange.com/questions/8231/… . Это довольно плохо, как есть.
  • 0
    Что ж. Проблема с этим методом заключается в том, что вы проверяете максимальный уровень громкости всей системы. Если есть, например, воспроизведение музыки из другого приложения, этот метод не удастся.
3

Вы можете использовать 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), если в данный момент воспроизводится звук или нет.

1

Вы можете проверить, испускает ли приложение звуки. Взгляните на это: получение текущего уровня вывода Windows на уровне громкости, как показано в аудио Mixer

Ещё вопросы

Сообщество Overcoder
Наверх
Меню