View Full Version : wavein
ali-ma
چهارشنبه 07 بهمن 1388, 17:59 عصر
سلام
میخواستم روش استفاده از توابع wavein را بدونم؟
ali-ma
پنج شنبه 08 بهمن 1388, 11:39 صبح
کسی نمی دونه؟
خواهش می کنم اگه می دونید کمک کنید:گریه:
gh-reza
پنج شنبه 08 بهمن 1388, 18:53 عصر
این صفحات مربوط به دلفی هست و انگلیسی ولی چون از APIهای ویندوز استفاده میکنه، با VB چندان فرقی نداره و توضیحات واسه همه زبانها یکیه.
http://juhara.com/article-en-2-Sound-Recording-with-Wave-API.html
http://juhara.com/article-14-Playing-WAV-with-Wave-API.html
http://juhara.com/article-9-Playing-WAV-and-MIDI-files-using-DirectX-Audio-with-Delphi.html
چندتا کد VBهم برات میزارم خودت آنالیزشون کن. خیلی هم ساده هستن. بعضی هاشونو از همین انجمن برداشتم، لطفا پیش از تاپیک زدن کمی توی انجمن و گوگل جستجو کنید
موفق باشید
ali-ma
یک شنبه 11 بهمن 1388, 16:40 عصر
بافری که از تابع wavein گرفته می شه شامل چیه؟ یعنی هر خانه ی ارایه ی گرفته شده مقدار چه چیزی را نشان می دهد؟ خیلی ممنون.
gh-reza
یک شنبه 11 بهمن 1388, 17:42 عصر
صدا در حقیقت آنالوگ هست و موجش پیوسته هست، ولی چون کامپیوتر دیجیتالیه، از نمونه برداری استفاده میکنیم. پارامتر nSamplePerSec تعداد نمونه های گرفته شده در هر ثانیه رو مشخص میکنه و nChannel تعداد کانالها (mono یا stereo) و wBitsPerSample تعداد بایتها به ازای هر نمونه. مقادیر ذخیره شده در فایل هم به این سه پارامتر بستگی دارن. اگه nChannel=2 باشه وwBitsPerSample=1 باشه، هر نمونه دو بایت جا میگیره. پس بجز بخش هدر فایل (که 44 بایت هست - البته اگه درست یادم مونده باشه)، توی بقیه فایل هر دو بایت یک نمونه هست و وقتی به کارت صوتی ارسال بشه صدائی تولید میکنه که ارسال پیوسته این مقادیر به کارت صوتی، صوت مورد نظر ما رو پخش میکنه. البته پارامترها میتونن متفاوت باشن که اگه سه تا لینکی رو که گفتم به دقت مطالعه کنید و جستجویی توی google انجام بدید کلی مطلب فارسی و انگلیسی مفید پیدا میکنید.
ali-ma
سه شنبه 13 بهمن 1388, 08:23 صبح
فرض کنیم نمونه برداری مونو باشد و هر نمونه 512 بایت باشد. ایا هر کدام از این بایت ها مقدار دیجیتال (تبدیل شده از حالت آنالوگ) در 512 بازه ی زمانی مختلف را نشان میدهند؟
خیلی ممنون.
gh-reza
جمعه 16 بهمن 1388, 22:38 عصر
هر نمونه که 512 بایت نمیشه، برای هر نمونه، به صورت استاندارد، 1 یا فوقش دو بایت کافیه (یعنی مقدار 8 یا 16 بیت). ولی اگه برای هر نمونه 512 بایت (یعنی 4096 بیت) در نظر بگیری (هر چند که غیر معقول هست)، کل اول 512 بایت متعلق به یه نمونه هست. در این صورت حجم فایلی که به صورت استاندارد مثلا 4 مگ هست و برای هر نمونه 2 بایت در نظر گرفته شد، میشه 496 مگ و کیفیت هم چندان تغییری نمیکنه.
ali-ma
شنبه 17 بهمن 1388, 16:03 عصر
مگه اون بافری که از تابع گرفته می شه نمونه ی گرفته شده نیست؟
اصلا چرا نمونه به صورت ارایه گرفته می شه؟:اشتباه:
gh-reza
یک شنبه 18 بهمن 1388, 20:25 عصر
خیر بافر حاوی نمونه گرفته شده نیست، حاوی نمونه های گرفته شده هست. یه نمونه که به تنهائی معنی نداره. یه بافر با اندازه دلخواه تعریف میشه، به دستگاه صوتی داده میشه، دستگاه صوتی صوت موجود در محیط رو گرفته و به اطلاعات دیجیتال تبدیل کرده و در بافر قرار میدهد. پس از پر شدن بافر، برنامه عملیات مورد نظر برنامه نویس را انجام میدهد و در این مدت بافر دیگری در دستگاه صوتی پر میگردد (بافرینگ مضاعف) و الی آخر. توی لینکهایی که در اولین پاسخ من ارائه شد، اینها توضیح داده شده و نمونه برنامه هم هست. کد دلفی هم چون به زبان انگلیسی شبیه و از APIهای ویندوز استفاده میکنه کاملا قابل فهم هست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.