مشاهده نسخه کامل
: تشخیص فعال بودن تابع
abbass64
14-04-2013, 08:24
با سلام.
من دارم یه بازی رو می سازم که الآن در حال صداگذاریش هستم.
من می تونم یه فایل با فرمت wav رو پخش کنم اما نمیتونم به برنامه بفهمونم که تشخیص بده که الآن این فایل در حال اجراست یا نه.
آخه میخوام به برنامه بفهمونم که هر وقت این فایل تموم شد یه فایل دیگه ای رو پخش کنه. لطفا سریع کمکم کنید.:42:
برای توقف فایل هم مشکل دارم. میتونم یه فایل صوتی رو با این کد متوقف کنم:&sndPlaySound 0&,0 اما وقتی فایل متوقف میشه یه صدایی از خود ویندوز در میاد(از صداهای defualt ویندوز)
قابل توجه دوستان، ببخشید ولی لطفا نگید که تو گوگل سرچ کن آخه خودمو کشتم اما چیزی پیدا نکردم.:9:
برای پخش فایل صوتی روش بهتر استفاده از کتابخانه ویندوز مدیا پلیره..//// برای اطلاعات بیشتر به تاپیک زیر مراجعه کنید.../// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
**********************************
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
************************
برای تشخیص در حال پخش بودن فایل صوتی، مقدار خاصیت PlayState رو چک کنید../// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
*****************************
موفق باشید! [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
abbass64
17-04-2013, 14:33
سلام n00b. این پست رو دیدم واقعا که media player همون چیزیه که من می خوام ولی وقتی کد هارو می نویسم و برنامه رو اجرا می کنم، برنامه ارور438 میده و برنامه بسته میشه.
فکر کنم کار ها رو کامل انجام ندادم آخه اونجایی که گفتید"حالا باید یه شی از کلاس MediaPlayer بسازید" رو دقیق متوجه نشدم و برای این، کار خاصی انجام ندادم. لطفا کامل توضیح بدید.با تشکر:n27::n27::n27:
سلام...//// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
******************
کد زیر یه شی جدید از این کلاس میسازه...// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
********************
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
***************
اگه کدی که نوشتید رو بذارید اینجا، بهتر بشه عیب یابیش کرد../// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
********************
موفق باشید! [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
abbass64
18-04-2013, 13:34
سلام دوباره به n00b. من یه چیزی رو متوجه شدم و اونم اینه که وقتی از منوی Project، گزینه ی Refrences رو انتخاب می کنم، دو تا گزینه ی Windows Media Player وجود داره که نام یکیش wmp.dll و نام دیگری msdxm.tlb هست و هیچ کدوم به نام msdxm.ocx نیست. وقتی هم که روی Brows کلیک می کنم وفایل msdxm.ocx رو از داخل پوشه ی System32 انتخاب میکنم برنامه ارور میده و میگه Can not add a reference to the specified file. لطفا بگید که این فایل رو چه جوری باید وارد کنم واز کجا باید بیارم.:n13::n13::n13: کدی هم که توی برنامه می نویسم فکر نکنم اشتباه باشه آخه منم یه فایل به نام Music توی ویندوز c ساختم و هیچ اشکالی ندارم. کدم اینه:
Dim WMP As New MediaPlayer.MediaPlayer
()Private Sub Form_Load
("WMP.Open ("C:\MUSIC.MP3
End Sub
abbass64
19-04-2013, 11:44
بازم سلام.n00bجان، میشه سورس همون کدی که خودت برای پخش استفاده می کنی رو بذاری تا ببینم اشکالم از کجاست؟ امیدوارم که کارم تخلف حساب نشه من فقط اشکال دارم.:n27:
از ویندوز 7 استفاده می کنید؟؟!!..//// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
***********************
استفاده کردن از Windows Media Player تو ویندوز سون یه کم دردسر داره../// به جاش از یه روش دیگه استفاده می کنیم// که البته قابلیت پخش فایل های MP3 رو هم داره..// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
***************************
به جای Windows Media Player گزینه ی ActiveMovie control type library رو تو لیست Reference ها انتخاب کنید// و یه شی جدید از این کلاس بسازید../// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
*******************
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
************************
برای پخش فایل صوتی اول آدرس فایل رو به تابع RenderFile بفرستید و بعد تابع Run رو صدا بزنید.../// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
**************
برای فهمیدن اینکه آهنگ درحال پخش هستش یا نه هم کافیه تابع GetState رو صدا بزنید.../// به صورت زیر..//// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
***************************
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
***********************
مقدار متغییر ret رو چک کنید...// اگه مقدارش برابر 2 باشه یعنی آهنگ در حال پخشه../// 0 یعنی Stop و 1 هم یعنی Pause .../// [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
**************************
موفق باشید! [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
abbass64
21-04-2013, 14:34
سلام خدمت همه ی دوستان عزیز مخصوصاn00b. شاید این پست، آخرین پست این تایپک باشه. از noob تشکر می کنم که کارمو راه انداخت. برای همه کسانی که می خوان فایل صوتی رو در برنامشون پخش کنند توضیح مناسبی از خلاصه ی پست های قبلی رو می دم.(با اجازه ی n00b عزیز)
پخش فایل از طریق ActiveMovie control type library
برای اینکار پروژه ی جدیدی رو باز می کنیم و از منوی project گزینه ی Reference رو انتخاب می کنیم. در پنجره ی باز شده تیک گزینه یActiveMovie control type library رو گذاشته و پنجره رو OK می کنیم.
سپس برای استفاده از این کلاس باید یه شی جدید بسازیم که برای اینکار کد زیر را در قسمت General فرم می نویسیم.
Dim MediaPlayer As New QuartzTypeLib.FilgraphManager
برای پخش فایل هم در هر مکانی که می خواهید کد زیر را بنویسید.
MediaPlayer.RenderFile "X:\FileName.MP3"
MediaPlayer.Run
توجه داشته باشید که در کد قبل X نام درایو و FileName نام فایل است و MP3 پسوند آن است.
برای توقف لحظه ای فایل در محل مورد نظر کد زیر را نوشته کنید.:n07:
MediaPlayer.Pause
برای توقف کامل هم از کد زیر استفاده می کنیم.
MediaPlayer.Stop
برای تشخیص اینکه این فایل صوتی هم اکنون در حال پخش است یا نه در محل مورد نظر کد زیر را می نویسیم.
Dim ret As LongMediaPlayer.GetState 0, ret
و بعد برای تشخیص در حال پخش بودن، مقدار متغیر ret رو چک می کنیم. اگر ret برابر با 0 بود یعنی فایل به طور کامل متوقف شده. اگر برابر با 1 بود، یعنی بر روی فایل توقف لحظه ای(Pause) انجام شده و اگر که این مقدار برابر با 2 بود یعنی هنوز فایل در حال پخش است.
با تشکر بسیار از n00b که این اطلاعات رو در اختیار من و دوستان قرار داد.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.