برای دسترسی به فایلهای صوتی داخل Resource و پخش کردن اونها نمیشه مانند دسترسی به bitmap ها یا .... عمل کرد.برای این کار میشه طبق مثال زیر عمل کرد.....
این مثال واسه وقتیه که یک فایل wav در resource وجود داشته باشه.برای فایل های بیشتر میشه از ArrayList استفاده کرد....
اضافه کردن namespace ها:
using System.Reflection;
using System.IO;
using System.Media;
using System.Runtime.InteropServices;
اضافه کردن dll مربوط به Windows Media Player :
[DllImport("Winmm.dll")]
private static extern bool PlaySound(byte[] data, IntPtr hMod, UInt32 dwFlags);
private const UInt32 SND_ASYNC = 1;
private const UInt32 SND_MEMORY = 4;
کدهای مربوطه:
private Assembly a = Assembly.GetExecutingAssembly();
private string _sound = string.Empty;
private Stream stream;
private Int32 length;
private byte[] _data;
foreach (string resourceName in a.GetManifestResourceNames())
if (Path.GetExtension(resourceName).ToLower() == ".wav")
_sound = resourceName;
stream = a.GetManifestResourceStream(_sound);
length = (Int32)stream.Length;
_data = newbyte[length];
stream.Read(_data, 0, length);
PlaySound(_data, IntPtr.Zero, SND_ASYNC | SND_MEMORY);





پاسخ با نقل قول
