PDA

View Full Version : کد برای کامپوننت مدیا پلیر



nimar9
دوشنبه 28 مرداد 1392, 20:05 عصر
سلام به تمامی دوستان و اساتید گرامی.
من دارم یه بازی می نویسم یه جا گیر کردم.
اونم اینه که اگر آهنگی که با مدیا پلیر بازه (کامپوننت) وقتی تموم شه یه اتفاقی بیفته در حقیقت فقط کد وقتی آهنگ قطع شد رو می خوام .
ممنون

mmssoft
دوشنبه 28 مرداد 1392, 21:07 عصر
دوست عزیز این ActiveXی رو که برات ضمیمه کردم رو چند مدت پیش نوشتم که برای پخش فایل های صوتی هست : mp3,wav,mid,wma (فایل های تصویری mp4 رو هم توی پنجره جداگونه نشون میده). حجمش خیلی کمه و استفاده ازش خیلی راحته

- امکانات : 1-پخش، توقف، مکث، ادامه 2- نمایش وضعیت پخش (در حال پخش هست یا نه) 3- نمایش زمان آهنگ

یه ویژگی به نام isPlaying داره که وقتی آهنگ در حال پخش باشه مقدارش True و وقتی در حال پخش نباشه، مقدارش False هست! برای انجام کار مورد نظرتون میتونید از ترکیب این ویژگی و if یا select case استفاده کنید...

nimar9
سه شنبه 29 مرداد 1392, 14:50 عصر
سلام ممنون بابت ActiveX تون خوب بود ولی من مشکلم اینه که وقتی آهنگ تموم میشه این کد اجرا شه یعنی دستور Public sub ... که وقتی آهنگ تموم میشه این رو وارد کنم. ممنون

mmssoft
سه شنبه 29 مرداد 1392, 15:00 عصر
خوب دوست عزیز این چیزی که شما میخواین رو من میتونم یه کم وقت بذارم اضافه کنم؛ ولی خودتون میتونید راحت این کار رو انجام بدید ، به این شکل :
اول یه Timer روی فرم اضافه کنید و Enabled رو False بذارید و Interval رو 100 یا 200 یا هر چی که مورد نظرتونه. بعد توی خط پایین دستوری که آهنگ رو توسط activex پخش میکنید، کد Timer1.Enabled = True رو هم بذارید. توی بخش Timer1_Timer هم این رو بذارید :

If SoundPlayer1.isPlaying = False Then

' عمل مورد نظرتون که قراره بعد از اتمام آهنگ انجام بشه
Timer1.Enabled = False

End If

nimar9
سه شنبه 29 مرداد 1392, 15:10 عصر
من همین کارو کردم اما ActiveX ی که شما نوشته اید وقتی برنامه بسته میشه آهنگ قطع نمیشه و فقط تموم میشه یعنی این کار 1بار بیشتر انجام نمیشه. می تونم موقع بستن برنامه کدش رو بنویسم که استوپ بشه و دفعه بعد درست باشه اما این کار خیلی وقت گیره چون نرم افزارم از راه های مختلف میاد بیرون و خروج داره. می دونم راه راهتر هست که خودش استوپ بشه. ممنون

mmssoft
سه شنبه 29 مرداد 1392, 17:24 عصر
اگه باز مشکلی داشت بگید تا تصحیح کنم

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

nimar9
سه شنبه 29 مرداد 1392, 18:45 عصر
اون مشکلش رفع شد ولی کل تو قسمت isplaying ش مشکل داره من حتی توی فایل تست خودتون هم تست کردم دفعه اول true میده بعدش همرو False میده و دقیق نیست اصلن. اینو اوکی کن. اگر کسی هم راهی بلده بگه دریغ نکنید خیلی واجبه. ممنون

nimar9
چهارشنبه 30 مرداد 1392, 12:28 عصر
یعنی کسی نیت تا کمکم کنه این مشکلم رفع شه ؟ چیز خاصی فکر نکنم باشه.
کد Public Sub WindowsMediaPlayer1_ ....... رو می خوام که وقتی آهنگ در حال پخش تموم شه کدها اجرا شه. لطفا و خواهشا کمکم کنید تا از شر این موضوع رها شم.

meys34
چهارشنبه 30 مرداد 1392, 13:19 عصر
یعنی کسی نیت تا کمکم کنه این مشکلم رفع شه ؟ یز خاصی فکر نکنم باشه.
کد Public Sub WindowsMediaPlayer1_ ....... رو می خوام که وقتی آهنگ در حال پخش تموم شه کدها اجرا شه. لطفا و خواهشا کمکم کنید تا از شر این موضوع رها شم.

Private Sub WindowsMediaPlayer1_PlayStateChange(ByVal NewState As Long)
If NewState = wmppsMediaEnded Then MsgBox "ENDE!"
End Sub

البته اون اکتیوایکس رو امتحان نکردم ها... اون هم شاید یه مزیت هایی داشته باشه...

mmssoft
چهارشنبه 30 مرداد 1392, 17:07 عصر
فکر نکنم این دیگه مشکلی داشته باشه...
باز اگه مشکلی بود بگید تصحیح کنم