Звук не воспроизводится в моем приложении - PullRequest
0 голосов
/ 15 апреля 2011

Я запускаю 1 фоновый процесс в моем приложении ... он постоянно проверяет наличие какого-либо ввода ... Когда введен правильный ввод из найденного .. Будет воспроизведен некоторый wav-файл ..

Я добавил1 wav заполняется с именем "ding.wav" в Ресурсы ..

, и я написал следующий код в своем приложении ... Я использую пространство имен System.Media.и используя .Net 4.0

SoundPlayer player = new SoundPlayer();
player.Stream = Properties.Resources.ding;
player.Play();

, но звук не воспроизводится ...

Можете ли вы сказать мне, что я делаю неправильно .. !!enter image description here

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011

Попробуйте это:

SoundPlayer player = new SoundPlayer(Properties.Resources.ding);
player.Play();

Вы также можете попробовать это:

using System;
using System.Runtime.InteropServices;
using System.Resources;
using System.IO;
namespace Win32
{
  public class Winmm
  {
    public const UInt32 SND_ASYNC = 1;
    public const UInt32 SND_MEMORY = 4;

    [DllImport("Winmm.dll")]
    public static extern bool PlaySound(byte[] data, IntPtr hMod, UInt32 dwFlags);
    public Winmm() { }
    public static void PlayWavResource(string wav)
    {
      // get the namespace 
      string strNameSpace= 
        System.Reflection.Assembly.GetExecutingAssembly().GetName().Name.ToString();

      // get the resource into a stream
      Stream str = 
        System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(      strNameSpace +"."+ wav );
      if ( str == null ) return;
     // bring stream into a byte array
     byte[] bStr = new Byte[str.Length];
     str.Read(bStr, 0, (int)str.Length);
     // play the resource
     PlaySound(bStr, IntPtr.Zero, SND_ASYNC | SND_MEMORY);
    }
  }
}
1 голос
/ 15 апреля 2011

Я думаю, что вы должны убедиться, что файл загружен, прежде чем воспроизводить его.

SoundPlayer player = new SoundPlayer(Properties.Resources.ding);
player.Load();
player.Play();
0 голосов
/ 15 апреля 2011

Я думаю, вам нужно сделать больше, чем это.Ознакомьтесь с этой статьей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...