在C#中使用Combobox播放声音

时间:2016-09-28 13:35:21

标签: c# combobox uwp

我是C#编程的新手,我创建了一个带有项目的组合框,我希望这些项目在我选择一个like this时发出声音, or that.

我正在使用Visual Studio 2015。

可能在方法play1和play2

private void AudioComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (AudioComboBox.SelectedIndex == AudioComboBox.Items.IndexOf("Sali 3la Mohammed 1"))
            {
                play1();
            }

            else if (AudioComboBox.SelectedIndex == AudioComboBox.Items.IndexOf("Sali 3la Mohammed 2"))
            {
                play2();
            }
        }


        private void play1()
        {
        }
        private void play2()
        {  
        }

2 个答案:

答案 0 :(得分:1)

您可以使用MediaElement或新AudioGraph在UWP中播放声音。

MediaElement是一种更简单的方法,它的缺点是导致移动设备上的音乐停止,所以它真的不太适合你的目的。

MediaElement player = new MediaElement();
var stream = await yourSoundFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
player.SetSource(stream, file.ContentType);
player.Play();

AudioGraph专为UWP应用中的声音效果而创建,是您的最佳选择。有一个quick and simple tutorial on Loek van den Ouweland's blog,所以我绝对建议你看一下。基本上,您需要为所需的每个声音创建一个AudioGraph实例并使用AudioFileInputNode s。

答案 1 :(得分:0)

这应该有效

private void AudioComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (AudioComboBox.SelectedIndex == AudioComboBox.Items.IndexOf("Sali 3la Mohammed 1"))
            {
                play1();
            }

            else if (AudioComboBox.SelectedIndex == AudioComboBox.Items.IndexOf("Sali 3la Mohammed 2"))
            {
                play2();
            }
        }


        private void play1()
        {
            SoundPlayer simpleSound = new SoundPlayer("sound1.wav");
            simpleSound.Play();
        }
        private void play2()
        {  
            SoundPlayer simpleSound = new SoundPlayer("sound2.wav");
            simpleSound.Play();
        }