View Full Version : کد گذاری فایل wav و استفاده در DirectSound
m_amin_t
یک شنبه 15 مهر 1386, 11:48 صبح
سلام
توی برنامه ی من چندین فایل صوتی wav استفاده میشن به طوری که هرجا لازم میشه برنامه میره و اون فایل رو میخونه. حالا میخوام بدونم آیا میشه کاری کرد که این فایل های صوتی برای دیگران قابل اسفاده و حتی رویت نباشه و آیا میشه همه ی اونها رو به یک فایل تبدیل کرد و برنامه در حین اجرا بتونه بخونتشون؟
PC2st
یک شنبه 15 مهر 1386, 17:39 عصر
بله میشه، فایلهای wav رو به برنامه اضافه کنید (بعنوان Resource Files). در اینصورت فایلهای wav بعنوان Resource در فایل exe ذخیره شده اند.
m_amin_t
چهارشنبه 18 مهر 1386, 14:24 عصر
ممنون، اونوقت چطوری میتونم ازش استفاده کنم؟ مثلا در حالت عادی آدرس فایل مثل این بوده : "d:\test.wav" . حالا در این حالت آدرس فایل رو چی باید بذارم؟
PC2st
چهارشنبه 18 مهر 1386, 21:11 عصر
حالا در این حالت آدرس فایل رو چی باید بذارم؟
اگر از سی شارپ استفاده میکنید، برای دستیابی به فایل wav:
Properties.Resources.YourSoundName
YourSoundName نام فایل wav است و بعنوان شیئی از نوع Stream میتونید ازش استفاده کنید.
m_amin_t
یک شنبه 22 مهر 1386, 09:32 صبح
اگر از سی شارپ استفاده میکنید، برای دستیابی به فایل wav:
Properties.Resources.YourSoundName
YourSoundName نام فایل wav است و بعنوان شیئی از نوع Stream میتونید ازش استفاده کنید.
من این راه رو امتخان کردم و فایل wav رو اضافه کردم ولی وقتی Properties.Resources. رو میزنم اسامی فایل های wav رو نمیاره و بقیه فایل ها مثل عکس ها رو میاره
PC2st
یک شنبه 22 مهر 1386, 18:54 عصر
عجیبه چون برای من لیست فایلهای wav رو میاره.
برای امتحان، فایل WINDOWS\Media\ding.wav رو به قسمت Resources اضافه کرده و به نحوه زیر اون رو مورد استفاده قرار بدید:
System.IO.Stream stream = Properties.Resources.ding;
m_amin_t
چهارشنبه 25 مهر 1386, 14:45 عصر
ممنون درست شد.
حالا مسئله اینجاست که از این stream چطور میتونم استفاده کنم؟
مثلا در خط دستور زیر:
SecondaryBuffer buffer = new SecondaryBuffer(string fileName, BufferDescription desc, Device device);
به جای fileName که آدرس فایل wav باید باشه، و با استفاده از همون Resource چی باید بنویسم؟
PC2st
پنج شنبه 26 مهر 1386, 23:43 عصر
از Overload ای که پارامتر از نوع Stream میگیره استفاده کنید:
SecondaryBuffer(System.IO.Stream, BufferDescription, Device)
و مثلا مانند زیر استفاده کنید:
SecondaryBuffer buffer = new SecondaryBuffer(Properties.Resources.ding, bufferDescription1, device1);
m_amin_t
یک شنبه 29 مهر 1386, 15:21 عصر
ممنون حل شد !
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.