PDA

View Full Version : الحاق دو فایل صوتی wave !!!



ali_mohamadi8928
پنج شنبه 05 اردیبهشت 1387, 22:19 عصر
سلام دوستان

من میخوام دو فایل صوتی wave رو به هم بچسبونم به صورتی که وقتی فایل سوم ایجاد شد و وقتی اجراش کردیم ابتدا فایل صوتی اول و پشت سرش فایل صوتی دوم رو پخش کنه ... یعنی در واقع صداهای دو تا فایل رو پشت سر هم در یک فایل جدید ذخیره کنه ...

من هر چقدر گشتم تا کدی برای این کار پیدا کنم نتونستم ... داخل همین تالار هم چند تا تاپیک در این زمینه پیدا کردم که نصفه کاره ول شده بودن ....

اگه دوستان کدی برای انجام این کار سراغ دارید لطفا راهنمایی کنید ... یا اگر کامپوننتی برای این کار هست معرفی کنید و مثال مربوطبه این کارش رو اگه دارید بزارید ... من کامپوننت MMTools رو هم دارم ولی نتونستم باهاش کاری انجام بدم ... !!!

منتظر راهنمایی هاتون هستم ...

babak_delphi
پنج شنبه 05 اردیبهشت 1387, 23:43 عصر
برای ادغام کردن دو فایل Wave باید اول یک فایل خالی ایجاد کنی ، بعد فایل اول رو بدون Header به اون اضافه کنی ، بعد فایل دوم رو هم بدون Header به اون اضافه کنی و در نهایت برای فایل جدید با توجه به محتوای اون ، Header بسازی و اون رو Save کنی.

من قبلا در یک برنامه کدش رو نوشته بودم
اگر نتونستید کدش رو بنویسید بگین تا اون کد رو براتون بگذارم

ali_mohamadi8928
جمعه 06 اردیبهشت 1387, 12:01 عصر
سلام باباک جان ... خیلی ممنون بابت توضیحاتت ... من اشنایی خاصی با ساختاری این فایلها ندارم ...

اگه لطف کنی و اون کدی که گفتی بزاری یک دنیا ازت ممنون میشم ...

babak_delphi
جمعه 06 اردیبهشت 1387, 15:06 عصر
در بخش مقالات در آدرس زیر قرار دادم تا شاید به درد بقیه دوستان هم بخورد و استفاده کنند

http://barnamenevis.org/forum/showthread.php?t=103358

ali_mohamadi8928
جمعه 06 اردیبهشت 1387, 15:42 عصر
یک دنیا ممنون .... کار خوبی کردی در قسمت مقالات قرار دادی ... چون اونجا همه بهش دسترسی دارن ....

راستی یه نکته ی دیگه ... این همه زحمت کشیدی و توضیح دادای ... یک مثال هم کنارش میساختی و میزاشتی مقاله ی کاملی میشد ....

ali_mohamadi8928
جمعه 06 اردیبهشت 1387, 15:57 عصر
دوست عزیز متاسفانه از Hader ایراد میگیره


file_header : array[0..100]of char =
chr($52)+chr($49)+chr($46)+chr($46)+chr($26)+chr(H 0)+chr(H0)+chr(H0)+chr($57)+chr($41)+chr($56)+chr( $45)+chr($66)+chr($6D)+chr($74)+chr($20)+chr($12)+ chr(H0)+chr(H0)+chr(H0)+chr(H1)+chr(H0)+chr(H1)+ch r(H0)+chr($40)+chr($1F)+chr(H0)+chr(H0)+chr($80)+c hr($3E)+chr(H0)+chr(H0)+chr($02)+chr(H0)+chr($10)+ chr(H0)+chr(H0)+chr(H0)+chr($66)+chr($61)+chr($63) +chr($74)+chr($04)+chr(H0)+chr(H0)+chr(H0)+chr($63 )+chr($E8)+chr(H0)+chr(H0)+chr($64)+chr($61)+chr($ 74)+chr($61)+chr($C6)+chr($D0)+chr(H1)+chr(H0);

از قسمتهایی که اینجوری نوشته شده ایراد میگیره


chr(H0)

babak_delphi
جمعه 06 اردیبهشت 1387, 16:06 عصر
من اون آرایه رو بصورت فرضی ساختم
اگر دقت کنید میبینید که در نهایت Header رو دوباره می سازم
شما اگر با (chr($46 (به عنوان مثال) مشکلی ندارید (chr(H0 ها را به (chr($46 تبدیل کنید
برای من ایراد نمی گرفت
اما در کل فرقی ندارد
چون header را آخر کار دوباره می سازیم