PDA

نسخه کامل مشاهده نسخه کامل : Sounds



H.E.R.O.E.S
07-01-2015, 15:43
سلام

من یک ارایه بایتی دارم که حاوی اطلاعات زیادی sound می باشد
چیزی حدود 10 یا 11 مگ

می خوام این آرایه بایتی و رو پخش کنم....

ارایه ها بر مبنای سیستم صوت mp3 ذخیره شده اند...

چجوری می شه این ارایه بایتی رو پخش کرد...؟؟؟

با

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
هر کار می کنم اطلاعات حاوی ارایه های بایتی رو نمی خونه ولی همین که اون ها رو در قالب یک فایل باز می کنم و در فایلی به صورت باینری می ریزم...

fileput(1,x.dada)

بعد میرم سراغ فایله می بینم فایل به درستی ضبط شده و روش که کلیک می کنم برام فایل و پخش می کنه

به نظرتون چجوری باید فایل های mp3 رو با دات نت ، پخش کنم....

بدون استفاده از مدیا پلیر.....

Msba
07-01-2015, 17:32
من معمولا برای کارهای صوتی خودم از Naudio استفاده می کنم. حتی تبدیل پسوند نیز با آن انجام داده ام. ضبط و پخش صدا و...
بارها با استفاده از NAudio یک فایل mp3 را به wav تبدیل کرده ام تا بتوانم بایت های آن را بخوانم و به عبارتی با آن بازی کنم !!!!!!!!
من Naudio را فوق العاده کاربردی در زمینه های صوتی می دانم.

مشخصات و دریافت NAudio .
([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
موفق باشید.

H.E.R.O.E.S
07-01-2015, 18:53
سلام
داداش این لینکی که دادی برای من باز نمی کنه یعنی مشکل داره:(

می شه من و با naudio اشنا کنی؟؟؟؟
چجوری باید ازش استفاده کنم؟؟؟

همراه با ذکر چند مثال

با تشکر

Msba
09-01-2015, 12:54
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدفضای نام های مورد نیاز:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
[B]پخش صدا:
برای پخش و قطع صوت می توانید از چنین کدی استفاده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر کلاس MP3FileReader را به کلاسی مثلا WMAFileReader تبدیل کنید و یا WAVEFileReader تبدیل کنید می توانید این دو پسند را نیز پخش کنید.
در توضیحات کد نیز باید این طور بررسی کرد:
1- ابتدا کلاس MP3FileReader را به فایل مورد نظر متصل می کنیم. این کار مانند اتصال StreamReader به یک فایل متنی است.
2- با استفاده از WavChannel32 اطلاعات فایل را تبدیل به Wav 32bit می کنیم. چرا؟ چون کارت صدا فقط ساختار Wav را می شناسد. (در این باره می توانید درباره مدولاسیون PCM صوتی و مبدل های D/A مطالعه کنید.)
3- با استفاده از WavOut یک کانال صوتی برای پخش این Wav در اختیار می گیریم. که می تواند اطلاعات WavChannel را پخش کند.
4- برای STOP کردن ابتدا باید خروجی کانال صوتی که از سیستم عامل گرفته شده است آزاد کرد. یعنی STOP نیست. چرا که STOP تنها توقف خواندن از فایل و پخش است و ما نیاز داریم تا کل کانال گرفته شده آزاد شود. پس Dispose می کنیم.
5- در نهایت فایل خود را نیز که به صورت یک منبع تعریف شده است را نیز Dispose کرده تا کاربری آن آزاد شود.


تبدیل به بایت wav یا همان بایت های PCM:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


1- در این کد ابتدا بررسی می شود که پسوند فایل ورودی قابل قبول است یا خیر.
2- ConvertionStream برای تبدیل ساختار فایل ها به کار می رود. مثلا تبدیل wave با نرخ نمونه برداری 128K به 8K و یا تبدیل استریو به مونو و یا تبدیل واحد نمونه برداری مثلا از 32بیت به 8 بیت. معکوس هم می شود یعنی افزایشی این مواردی که گفتم. ولی تاثیری در کیفیت ندارد و کلا کار پوچی است! در آرگومان های Constructor های این کلاس این پارامتر ها وارد می شوند.
3- زمانی که instance کلاس ConvertionStream خوانده می شود(Read) عمل تبدیل صورت می گیرد و اینجا بایت های تبدیلی را برمی داریم و برمی گردانیم. به همین راحتی.
نکته: اکثر کلاس های Naudio باید Dispose شوند برای همین باید به این نکته دقت کرد و با استفاده از using و یا وراثت IDisposable برای اجبار وجود Dispose و یا نوشتن Dispose پس از اتمام کار و..... این عمل را انجام داد.

تبدیل بایت به Wav (معکوس بالا، تولید فایلwav)
دو راه وجود دارد (تا اینجایی که من می دانم!):
1- استفاده از خود بایت های تبدیلی. یعنی خروجی کلاسی مثل ConvertionStream . در واقع وراثت IWaveProvider را داشته باشد.
2- استفاده از آرایه ی بایتی.
در راه اول:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
dADR آدرس مقصد است. و conv نمونه کلاس ConvertionStream .
در راه دوم شیوه کاملا مشابه ساخت یک فایل متنی است با این تفاوت که کلاس مورد استفاده به جای مثلا StreamWriter کلاس WafeFileWriter است:
ابتدا format فایل خود را تعیین می کنیم، مثلا:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سپس بایت های خود را درونش می نویسیم و فایل را می بندیم. کاملا مشابه یک فایل متنی کد می نویسیم.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



موفق باشید.