PDA

View Full Version : سوال: پخش فایل صوتی(mp3 , wav , ...) در برنامه



majid_i68
سه شنبه 24 مرداد 1391, 16:55 عصر
سلام دوستان

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

majid_i68
سه شنبه 24 مرداد 1391, 23:48 عصر
کسی بلد نبود؟

harani
چهارشنبه 25 مرداد 1391, 00:51 صبح
سه تا راه هستش
1- اگه میخوای صدای دلخواه اجرا بشه شرطش اینه که هم باید صدات کوتاه باشه هم فرمتش Wav باشه . پس از این فایل صداتو در فایل bin > debug پروژت کپی میکنی . بعد میای سراغ کد نویسی
در قسمت using تایپ میکنی . using System.Media;//a بعد حالا هر جا که صدات میخوای اجرا بشه کد زیر رو مینویسی :

SoundPlayer x = new SoundPlayer("Esme File Sedat.wav");//a
x.Play();//b


2- استفاده از صداهای مسیج باکس : البته در اینجا هم باید از using System.Media;//a استفاده بکنی
SystemSounds.Hand.Play();
پس از تایپ SystemSounds.//b صدا ها ظاهر میشه

3- استفاده از صدای beep با دامنه و فرکانس متفاوت متدشم بصورت Console.Beep(int frequency , int duration);//b هست که از روش دومم ظاهر میشه فرقی که این روش با بالایی داره در اینجا اگه از using System.Media//a استفاده نکنی اشکالی نداره .

موفق باشید .

majid_i68
چهارشنبه 25 مرداد 1391, 07:35 صبح
با تشکر از harani (http://barnamenevis.org/member.php?256621-harani) عزیز

اگه ممکن است روش اول رو توضیح بیشتری بدهید .. در مورد انواع روشهای آدرس دهی فایل صدا..
روش دوم رو اجرا کردم اما اولی نشد فایلم از نوع wav هست و چند ثانیه بیشتر نیست.به دیباگ کپی کدم اشمس هم که به برنامه دادم اما وقتی اجرا مشیه و روی دکمه کلیک میکنم تا پخش بشه .. خطا میده که فایل wav نیست....یه استثنا باز میکنه و Sound API only supports playing PCM wave files.

Y_Safaiee
چهارشنبه 25 مرداد 1391, 08:27 صبح
سلام دوست من



System.Media.SoundPlayer sndplayer = new System.Media.SoundPlayer(Application.StartupPath + "\\1.wav");
sndplayer.Play();

فایل .wav ت باید کنار فایل exe باشه.

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

به اینجا (http://barnamenevis.org/showthread.php?339646-%D9%82%D8%B1%D8%A7%D8%B1%D8%AF%D8%A7%D8%AF%D9%86-%D9%85%D9%88%D8%B2%DB%8C%DA%A9-%D8%AF%D8%B1-%D9%81%D8%B1%D9%85-%D9%88-%D9%82%D8%B7%D8%B9-%D9%88-%D9%88%D8%B5%D9%84-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A2%D9%86&p=1498759#post1498759), اینجا (http://barnamenevis.org/showthread.php?348505-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A2%D8%AF%D8%B1%D8%B3-%D8%AF%D9%87%DB%8C-%D8%A2%D9%87%D9%86%DA%AF&p=1537139#post1537139)مراجعه کن.

موفق باشی
بایت بایت

harani
چهارشنبه 25 مرداد 1391, 10:57 صبح
من فایلو براتون ضمیمه میکنم خودتون اول بررسی کنید کجا فایل صوتی کپی شده . بد نحو ه ی کد نویسی رو ببنید .

91290

setareh2013
چهارشنبه 25 مرداد 1391, 11:09 صبح
سلام دوست من



System.Media.SoundPlayer sndplayer = new System.Media.SoundPlayer(Application.StartupPath + "\\1.wav");
sndplayer.Play();

فایل .wav ت باید کنار فایل exe باشه.

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

به اینجا (http://barnamenevis.org/showthread.php?339646-%D9%82%D8%B1%D8%A7%D8%B1%D8%AF%D8%A7%D8%AF%D9%86-%D9%85%D9%88%D8%B2%DB%8C%DA%A9-%D8%AF%D8%B1-%D9%81%D8%B1%D9%85-%D9%88-%D9%82%D8%B7%D8%B9-%D9%88-%D9%88%D8%B5%D9%84-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A2%D9%86&p=1498759#post1498759), اینجا (http://barnamenevis.org/showthread.php?348505-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A2%D8%AF%D8%B1%D8%B3-%D8%AF%D9%87%DB%8C-%D8%A2%D9%87%D9%86%DA%AF&p=1537139#post1537139)مراجعه کن.

موفق باشی
بایت بایت

اگه بخوام دو یا سه تا آهنگ رو پشت سر هم بخونه باید چه کار کرد .
اینجا فقط فایل 1.wav رو می خونه.
ممنون

Y_Safaiee
چهارشنبه 25 مرداد 1391, 11:41 صبح
با سلام مجدد

برای اینکه یه Playlist بسازی بهترین گزینه استفاده از mediaplayer هست اینجا (http://stackoverflow.com/questions/9130666/how-to-play-next-item-on-playlist-with-axmediaplayer)رو نگاه کن.

موفق باشی
بایت بایت

armeshi
شنبه 25 اردیبهشت 1395, 20:28 عصر
من دو تا فایل wave دارم یکی a1 پخش میشه اون یکی a2 پخش نمیشه

(http://barnamenevis.org/attachment.php?attachmentid=140424&d=1463242546)WAV.rar (http://barnamenevis.org/attachment.php?attachmentid=140424&d=1463242546)

خطا: Sound API only supports playing PCM wave files.
(http://barnamenevis.org/attachment.php?attachmentid=140424&d=1463242546)

private void A_Click(object sender, EventArgs e)
{
//========== تلفظ
SoundPlayer x = new SoundPlayer(myPath + "\\AlphabetSounds\\a1.wav");
x.Play();
}

ممنونم

armeshi
شنبه 25 اردیبهشت 1395, 22:10 عصر
دوستان زحمت نکشن
پیدا کردم !!!
با نرم افزار WAV MP3 Converter که از سایت دانلودکده گرفتم و نصب کردم
اون فایلها رو دوباره به wave تبدیل کردم درست شدن.
لینک دانلود نرم افزار :
http://downloadkade.com/archives/822/wav-mp3-converter-3-9-%D9%85%D8%A8%D8%AF%D9%84-%D8%AA%D9%85%D8%A7%D9%85%DB%8C-%D9%81%D8%B1%D9%85%D8%AA-%D9%87%D8%A7%DB%8C-%D8%B5%D9%88%D8%AA%DB%8C/

ممنونم

armeshi
چهارشنبه 05 خرداد 1395, 16:41 عصر
یک سوال دیگه:

یک برنامه می خوام درست کنم شبیه فرم زیر:

140565
* کاربر نام قاری و شماره سوره را از کمبوباکس انتخاب میکنه و شماره آیه موردنظر خود را تایپ می کند بعد با زدن اینتر و یا بیرون رفتن از تکست باکس، برنامه تصویر آیه ( که همشونو جدا دارم ) را نشان داده و آیه مورد نظر ( که همشونو جدا دارم ) را پخش میکنه

دوستان چطور می تونید بهم کمک کنید
خیلی ممنون

mrprestige
چهارشنبه 05 خرداد 1395, 19:45 عصر
یک سوال دیگه:

یک برنامه می خوام درست کنم شبیه فرم زیر:

140565
* کاربر نام قاری و شماره سوره را از کمبوباکس انتخاب میکنه و شماره آیه موردنظر خود را تایپ می کند بعد با زدن اینتر و یا بیرون رفتن از تکست باکس، برنامه تصویر آیه ( که همشونو جدا دارم ) را نشان داده و آیه مورد نظر ( که همشونو جدا دارم ) را پخش میکنه

دوستان چطور می تونید بهم کمک کنید
خیلی ممنون
سلام دوست عزیز ، دوست من راهنمایی که میتونم بهت بکنم اینه که برای تصویر آیه و فایل های صوتی مربوط به هر آیه رو داخل یه آرایه دوبعدی بریزی و برای جلوگیری از سنگین اجرا شدن نرم افزار بهت Thread و یا Background Worker رو پیشنهاد میکنم که بازم من Background Worker رو بیشتر پیشنهاد میدم چون دستت توی مدیریت کدهات نسبت به زمانی که Thread مینویسی باز تره از این لحاظ میگم دستت بازه که میتونی توی سه حالت برای Background Worker تکلیف تعیین کنی ( موقع که اجرا میشه و موقعی که در حال اجراست و موقعی که خاتمه پیدا میکنه ) امیدوارم منو ببخشی که نتونستم بیشتر راهنماییت کنم چون تازه از پادگان اومدم و خستگی امونم رو بریده ولی علاقه ام به برنامه نویسی و اینکه با این حال دوست دارم به دوستان برنامه نویسم چون شما کمکی کرده باشم تا حد امکان .

پیروز و موفق باشید.

armeshi
چهارشنبه 05 خرداد 1395, 22:33 عصر
خداقوت سرباز
ان شاء الله به سلامتی سربازیتونو تموم کنی

http://s6.picofile.com/file/8252980150/SoundImage.rar.html

این فرم برناممه و تو قسمت دیباگ یه چندتا فایل مرتبط با این موضوعو گذاشتم
اگه بتونی بیشتر کمکم کنی ممنون میشم

فرم برنامه:

http://barnamenevis.org/attachment.php?attachmentid=140568&d=1464203895

CodeforLife
پنج شنبه 13 خرداد 1395, 10:46 صبح
سلام میخوام در بنامم با فایل mp3 کار کنم
باید چه طور فعالش کنم
هر جا می گیرم wave هستن

if (Ajir == true)
{
System.Media.SoundPlayer sPlayer = new System.Media.SoundPlayer();
sPlayer.SoundLocation ="C:\\Users\\parisa\\Desktop\\Gm\\Sound.mp3";
sPlayer.Play();
//
}

اینو نوشتم ولی File not found دارم
آهان راست یبرا آدرس دهی نسبی باید چه کار کنم ؟

CodeforLife
پنج شنبه 13 خرداد 1395, 11:04 صبح
دوباره سلام الان به wav
تبدیل کردم
ولی بازfound file not
دارم
از مسیر ایراد میگیره!

armeshi
پنج شنبه 13 خرداد 1395, 11:23 صبح
نحوه ریختن عکس و صدا در یک آرایه چگونه است؟
دوستان نمونه برنامه ساده ای ندارن بذارن استفاده کنیم

mrprestige
پنج شنبه 13 خرداد 1395, 11:55 صبح
نحوه ریختن عکس و صدا در یک آرایه چگونه است؟
دوستان نمونه برنامه ساده ای ندارن بذارن استفاده کنیم
سلام دوست من ، من که برات توی pv گفتم که چیکار کنی ( استفاده از dictionary ) اصلا دنبالش رفتی ؟؟

mrprestige
پنج شنبه 13 خرداد 1395, 12:08 عصر
سلام میخوام در بنامم با فایل mp3 کار کنم
باید چه طور فعالش کنم
هر جا می گیرم wave هستن

if (Ajir == true)
{
System.Media.SoundPlayer sPlayer = new System.Media.SoundPlayer();
sPlayer.SoundLocation ="C:\\Users\\parisa\\Desktop\\Gm\\Sound.mp3";
sPlayer.Play();
//
}

اینو نوشتم ولی File not found دارم
آهان راست یبرا آدرس دهی نسبی باید چه کار کنم ؟
سلام دوست من ، شما اول توی کلاس Form تون این خط کدی که براتون نوشتم رو بنویسید


[DllImport("winmm.dll")]private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);


بعد یک کنترل ( مثلا Button 1) روی صفحه تون ایجاد و در رویداد Click اینو بنویسی ( این برای انتخاب فایل صوتی هست )

openFileDialog ofd=new openFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{ Textbox1.Text = ofd.FileName; }



حالا یه کنترل دیگه باری پخش فایل صوتی ایجاد میکنیم ( Button2 )

mciSendString("open \"" + Textbox1.Text + "\" type mpegvideo alias MediaFile", null, 0, IntPtr.Zero); mciSendString("play MediaFile", null, 0, IntPtr.Zero);


و یک کنترل دیگه برای توقف فایل صوتی (Button 3)

mciSendString("close MediaFile", null, 0, IntPtr.Zero);


پیروز و موفق باشید .
از کدنویسی لذت ببرید .

CodeforLife
پنج شنبه 13 خرداد 1395, 14:18 عصر
سلام ممنون جوا ب داد الان برای آدرس دهی نسبی هر کار می کنم جواب نمی ده
می خوام نسبت به این |آدرس نباشه .
فایل رو در فولدر برنامم کپی کردم که تو هر سیستمی اجرا بشه
چه طور این کار رو بکنم ؟

armeshi
جمعه 14 خرداد 1395, 09:51 صبح
سلام mrprestige

من خيلي خيلي ازتون تشكر مي كنم كه توضيحات خوبي دادين
كم هستند افراديكه اينقد به خاطر ديگران زحمت مي كشند و راهنماييشون مي كنند (http://barnamenevis.org/member.php?338119-mrprestige)
ولي متاسفانه چون من هر روز نمي تونم به اينترنت وصل شم و اينترنتم محدوده تا پيگير سوالاتم بشم
مطلب شما رو چاپ گرفتم و چندين بار دارم مي خونم و اينكه رشته من كامپيوتر نيست و برنامه نويس بسيار مبتدي هستم و نيز نبود دكمه و كمبوباكس و... تو راهنماييون
خيلي نتونستم با سوالم ارتباطش بدم مضاف بر اينكه چون سربازم هستي و وقتت محدوده نميتونم هي ازتون سوال كنم ، بهتر ديدم كه همزمان كه دارم رو جواب شما فك مي كنم يه پست بذارم و از ديگران هم سوال كنم شايد زودتر به جوابم به همراه يك نمونه مثال عملي به همراه كد برسم
خلاصه خيلي خيلي ممنونم
لطفا از من دلگير نباش دوست من.
ما به وجود افرادي مثل شما افتخار مي كنيم
اگه وقتش رو داري بازم مي توني بيشتر كمكم كني؟ و اون مثالتونو به همراه فرم آموزش بدين؟