PDA

View Full Version : سوال در مورد معنی یک کد



Salar.Shayegan
جمعه 07 تیر 1392, 13:38 عصر
سلام دوستان
من یه سورس رو از طریق ویرایش یه سورس دیگه بدست آوردم و هدفش اینه که یک صدا را که در کنار برنامه قرار داره پخش میکنه...

میخواستم یکی از دوستان معنی و مفهوم کلی هر خط رو (بصورت خط به خط) توضیح بدهد اگر ممکن است.
(سورس آنرا هم پیوست کرده ام)
کد:


Dim retval As Single

Private Declare Function PlaySound Lib "winmm.dll" Alias _
"PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, _
ByVal dwFlags As Long) As Long

Private Declare Function waveOutGetNumDevs Lib "winmm.dll" () As Long

Public Function CanPlayWaves() As Boolean
Dim x As Integer
x = waveOutGetNumDevs()
CanPlayWaves = x
End Function

Public Function PlayWaveFile(strFileName As String, _
Optional blnAsync As Boolean) As Boolean

Dim lngFlags As Long
Const snd_sync = &H0
Const snd_Async = &H1
Const snd_Nodefault = &H2
Const snd_Filename = &H20000
lngFlags = snd_Nodefault Or snd_Filename Or snd_sync
If blnAsync Then lngFlags = lngFlags Or snd_Async
PlayWaveFile = PlaySound(strFileName, 0&, lngFlags)
End Function

Private Sub cmd1_Click()
retval = PlayWaveFile(App.Path & "\" & "bounce.wav", True)
End Sub




سورس:

alipoor2009
جمعه 07 تیر 1392, 14:48 عصر
لازم نبود این همه زخمت بکسی با کامپوننت Windows Media Player می تونی با 2 خط برنامه همین کار رو انجام بدی

Salar.Shayegan
جمعه 07 تیر 1392, 18:36 عصر
ممنون
چجوری؟
ممکنه کد یا سورس بدید؟

AxissXs
جمعه 07 تیر 1392, 19:12 عصر
درود
خسته نباشید
اینم یه سورس ساده
امیدوارم کمک کنه
اگر سوالی بود من در خدمتم


.:|AxissXs|:.

Salar.Shayegan
جمعه 07 تیر 1392, 20:34 عصر
ممنون
در سورسی که لطف کردید گذاشتید، وقتی آهنگ رو باز میکنم، موقع بسته شدن برنامه صدا متوقف نمیشه و ادامه پیدا میکنه...
در واقع موزیک از برنامه مستقل میشود و برای متوقف کردنش هیچ راهی نیست جز منتظر موندن تا پایان موزیک...
راه حل چیست؟ یه زمانی فکر کنم دستور
M1.Command = "Close"
رو بکار میبردم ولی امتحان کردم و جواب نداد.

با تشکر از زحمتتون

AxissXs
شنبه 08 تیر 1392, 11:19 صبح
دوست عزیز
من برنامه رو کاملا تست کردم
درست کار میکنه
دستور توقف موسیقی رو هم توش نوشتم
M1.Command = "Stop"

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

Salar.Shayegan
دوشنبه 10 تیر 1392, 13:18 عصر
ممنون دوست عزیز
عذر میخوام اشتباه از من بود...

راستی دوتا سوال:
- فرق دستور Stop با Pause در چیست؟
- با کدام دستور میتوان تمام شدن آهنگ را به برنامه فهماند و بعد دستوری نوشت که بعد از تمام شدن آهنگ، همان آهنگ دوباره پخش شود یا به آهنگ بعدی برود؟
(مثلا" برای صدای پشت صحنه که مدام تکرار میشود از این دستور میتوان استفاده کرد)

alipoor2009
دوشنبه 10 تیر 1392, 17:21 عصر
به نظرم توی این پست به نتیجه های خوبی رسیدن
http://barnamenevis.org/showthread.php?400498

AxissXs
سه شنبه 11 تیر 1392, 18:37 عصر
دستور Pause موسیقی رو سر جاش نگهمیداره و با دستور Play میشه از همونجا ادامه داد
ولی دستور Stop موسیقی پخش شده رو به اول میاره و با Play موسیقی از نو شروع میشه
دستور Repeat فکر کنم بتونه حالت تکرار رو فعال کنه
منم میگردم دستورشو پیدا کردم برات ضمیمه میکنم