wpf 指定音频设备播放测试声音

Can not set output device, only use system default output device:
private System.Media.SoundPlayer sp = new SoundPlayer();
            sp.SoundLocation = "Resources\\sounds\\speaker.wav";
            sp.Load();
            sp.Play();
//can set selected device,
private WaveOutEvent _waveOut = null;
private void Test_Loudspeaker_Click(object sender, RoutedEventArgs e)
        {
            //init
            _waveOut = new WaveOutEvent();
            //set output device
            detectDevice();
            //sound file
            string filePath = "Resources\\sounds\\test.wav";
            WaveFileReader reader = new WaveFileReader(filePath);
            _waveOut.Init(reader);
            _waveOut.Play();
        }

private void detectDevice()
        {
            string selectedSpeaker = GetCurrentSelectedSpeaker();
            if(selectedSpeaker != null && !selectedSpeaker.Equals(""))
            {
                int waveOutDevices = WaveOut.DeviceCount;
                for (int i = 0; i < WaveOut.DeviceCount; i++)
                {
                    var cap = WaveOut.GetCapabilities(i);
                    if (selectedSpeaker.Contains(cap.ProductName))
                    {
                        _waveOut.DeviceNumber = i;
                        return;
                    }
                }
            }
        }

 private void disposeWave()
        {
            if(_waveOut != null)
            {
                if(_waveOut.PlaybackState == NAudio.Wave.PlaybackState.Playing)
                {
                    _waveOut.Stop();
                    _waveOut.Dispose();
                    _waveOut = null;
                }
            }
        }
reference: https://github.com/naudio/NAudio/wiki/Playing-an-Audio-File
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值