如何在C#与C#低延迟/非常小的延迟播放音频文件? [英] How to play audio file in C# with low latency/very little delay in C#?

查看:241
本文介绍了如何在C#与C#低延迟/非常小的延迟播放音频文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何发挥在C#中的音频文件(.MP3)具有非常小的延迟?我的意思是,该文件应该开始播放用户输入后,右边的比提供及更高版本。

How do I play an audio file(.mp3) in C# with very little delay? What I mean is, the file should start playing the right after user input is provided and later than that.

另外,我怎么能在同一时间玩两个并联的音频文件?

Also, how can I play two audio files in parallel at the same time?

推荐答案

我告诉你我是如何做到这一点使用DirectX AudioVideoPlayback:

I show you how I do this using DirectX AudioVideoPlayback:

public class MusicPlayer
{
    private static Audio m_Audio;

    private static void Loop(Object Sender, EventArgs e)
    {
        ((Audio)Sender).SeekCurrentPosition(0d, SeekPositionFlags.AbsolutePositioning);
    }

    public static void Dispose()
    {
        if (m_Audio != null)
        {
            m_Audio.Stop();
            m_Audio.Dispose();
            m_Audio = null;
        }
    }

    public static void Mute()
    {
        if ((m_Audio != null) && m_Audio.Playing)
            m_Audio.Volume = -10000;
    }

    public static void Play(String filePath, Boolean loop)
    {
        if (File.Exists(filePath))
        {
            Dispose();

            if (m_Audio == null)
                m_Audio = new Audio(filePath);
            else
                m_Audio.Open(filePath);

            if (loop)
                m_Audio.Ending += Loop;

            m_Audio.Volume = MusicSettings.Volume - 10000;
            m_Audio.Play();
        }
    }

    public static void Unmute()
    {
        if (m_Audio != null)
            m_Audio.Volume = MusicSettings.Value - 10000;
    }
}

您可以从这个片段开始。

You can start from this snippet.

这篇关于如何在C#与C#低延迟/非常小的延迟播放音频文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆