mefmef
mefmef

Reputation: 665

How to know if a sound is playing using c#?

I have a TTS program (Third Party) and I wrote a c# application that uses that program. (Type into my application and press a button to move the mouse and click on the Third party app).

I need to know whether the speech is finished or not. Are there any ideas on how to determine if any sound playing from sound card or not?

Upvotes: 4

Views: 5982

Answers (4)

Chamod
Chamod

Reputation: 767

I successfully did it using C# by following this power-shell script. You just have to remove the first and the last line to make a C# class from this power-shell script

Upvotes: 0

Kent Aguilar
Kent Aguilar

Reputation: 5338

You could use CSCore.
Download it right here -> https://github.com/filoe/cscore

Paste these lines on a console project.

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;
            }
        }
    }
}

Play a music be it on YouTube, Music Player, etc...
Run the program.
It automatically notifies(true/false) if there is an audio currently being played or not.

Upvotes: 11

Florian
Florian

Reputation: 5994

You could check whether the application emits sounds. Take a look at this: Getting individual windows application current volume output level as visualized in audio Mixer

Upvotes: 1

L-Four
L-Four

Reputation: 13531

You can do this by using a wrapper around Direct X. There are many examples, just google for it. For example, C# code can be found here or here.

Upvotes: 2

Related Questions