一次播放多个声音文件

Posted

技术标签:

【中文标题】一次播放多个声音文件【英文标题】:Play many soundfiles at once 【发布时间】:2019-11-05 15:52:12 【问题描述】:

我正在尝试播放音乐文件,在此期间我想为我的主机游戏播放一些音效。

SoundPlayer player = new SoundPlayer();
public static void StartBattelMusic()
        
            player.SoundLocation = "D:....BattelMusic.wav";
            player.Play();
        


        public static void SwordHitSound()
        
            player.SoundLocation = "D:....SwordHitSound.wav";
            player.Play();
        

两者都在工作,但是当我启动 SwordSound 文件时,Battel 音乐停止了。 谢谢大家的帮助:)

【问题讨论】:

查看相同问题的答案。 ***.com/questions/1285294/… 【参考方案1】:

您可以尝试以下代码在控制台应用程序中一次播放两个声音文件。

   class Program
    

        static void Main(string[] args)
        
            string path1 = "D:\\test.mp3";
            string path2 = "D:\\1.mp4";
            play(path1);
            play(path2);
            Console.ReadKey();
        
        static  void play(string audioPath)
        
            MediaPlayer myPlayer = new MediaPlayer();
            myPlayer.Open(new System.Uri(audioPath));
            myPlayer.Play();
        
    

添加参考:

【讨论】:

它需要是MediaPlayer,因为我得到编译器错误,缺少使用direktive.... 我只使用 System.Windows.Media 添加;此代码使用 MediaPlayer。你遇到什么错误,你能描述得更清楚吗? 命名空间“Media”的类型不在“System.Windows”命名空间内....我在控制台应用程序(.Net Framework)中工作,可能是因为错误项目? 我的测试环境也是Console-app。另外,我还更新了我的回复,可以告诉你如何添加参考。 您也可以从路径(C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\PresentationCore.dll)添加dll引用。请再试一次。【参考方案2】:

尝试在方法内部创建播放器,不同的对象,分开,为每个声音。如果不同的 SoundPlayer 实例(针对每种声音)不能解决问题,请尝试将其替换为 MediaPlayer (https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.mediaplayer?view=netframework-4.8)

【讨论】:

如何在控制台应用程序中使用它?^^ public static void StartBattelMusic() SoundPlayer player = new SoundPlayer(); player.SoundLocation = "D:.... BattelMusic.wav";播放器.Play(); 公共静态无效 SwordHitSound() SoundPlayer player = new SoundPlayer(); player.SoundLocation = "D:....SwordHitSound.wav";播放器.Play();

以上是关于一次播放多个声音文件的主要内容,如果未能解决你的问题,请参考以下文章

Android - 按顺序播放多个声音

AVAudioPlayer 帮助:同时播放多个声音,一次停止所有声音,并解决自动引用计数

在javascript中同时播放多个声音

通过 ExoPlayer 或其他选项播放多个音频文件?

JQuery 不播放多个声音文件或延迟事件

使用 AVAudioPlayer 一次播放多个声音