пытаясь воспроизвести файл .wav, который находится в папке Resources, он есть, но Visual Studio говорит, что это не так! - PullRequest
5 голосов
/ 01 ноября 2010

Я пытаюсь играть в L1.wav, который находится в моей папке ресурсов.Ранее я вытащил изображения из файла ресурсов, используя строку btc.Properties.Resources.noImg, которая отлично работала, но если я пытаюсь сделать то же самое для файла wav, я получаю '... не содержит определения для L1.Его там, отлично работает, если я дважды щелкните по нему.Как мне заставить его работать?

System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = btc.Properties.Resources.L1;
player.play();

Спасибо.

Ответы [ 4 ]

5 голосов
/ 01 ноября 2010

Для свойства SoundLocation требуется строка, содержащая путь к файлу или URL.Однако добавленный вами ресурс возвращается в виде потока, если это был файл .wav.Вы должны были получить сообщение об ошибке компиляции, в котором говорится, что он не может преобразовать UnmanagedMemoryStream в строку.

Этот код хорошо работал на моей машине:

        System.Media.SoundPlayer player = new System.Media.SoundPlayer();
        player.Stream = Properties.Resources.test;
        player.Play();

Что btc означает, что ваш исходный код довольно загадочный и, возможно, реальный источник сообщения об ошибке компилятора, которое вы цитировали.

0 голосов
/ 01 декабря 2014
(new SoundPlayer(Properties.Resources.L1)).Play();

Это так просто.

0 голосов
/ 16 марта 2013
Stream audio = <assembly>.Properties.Resources.ResourceManager.GetStream("notify.wav");
        SoundPlayer player = new SoundPlayer(audio);
        player.Play();

С простотой ...

0 голосов
/ 21 декабря 2012

Вы можете сделать что-то вроде этого

System.Media.SoundPlayer player = new System.Media.SoundPlayer (@ "местоположение файла.wav"); player.Play ();

...