Fa نحوه استفاده از RunMBD و پخش موزیک بر روی یک پروژه چند بخشی ...

kharazmi

Member
سلام به همه دوستان

1-یک برنامه چند بخشی در پایین قرار دادم از دوستان می خوام موزیکی را به عنوان بک گراند از لحظه ای که برنامه شروع می شه تا وقتی که از برنامه خارج می شیم بر روی پروژه قرار بدید ؟ (اصلا امکان پذیر هست!!!)

2- میشه وقتی کاربر برنامه رو می بنده و از برنامه خارج می شه موزیک یک دفعه قطع نشه وکم کم در 3 ثانیه کم بشه و بعد برنامه بسته بشه ؟

3-یک مشکلی که من داشتم این بود که پروژم را در چند بخش درست کرده بودم ولی نمی تونستم بخشهای مختلف پروژه را بهم ربط بدم برای دستور RunMBD کل انجمن را گشتم و زیر رو کردم و مثالی کاربردی برای نشان دادن عملکرد RunMBD ندیدم فکر کردم بهتره با یک مثال واقعی این موضوع آموزش داده بشه باسه همین سمپلی را در زیر قرار دادم تا یکی از دوستان زحمت "یکی کردن" یک برنامه ای که چند بخش داره رو بکشه

من از evil_gates عزیز به صورت پیام خصوصی کمک گرفتم ولی گفتم این سمپل را هم اینجا بزارم تا تازه کارهای دیگه مثل من راحت تر کار با RunMBD را یاد بگیرند
البته من بخشها را جدا قرار دادم تا اگر مسئله یا نکته مهمی هم که باید هنگام استفاده از RunMBD رعایت بشه ، هست اساتید در سمپل زیر لحاظ کنند بگیرند.


--------------------------------لودینگ--------------------------------
-----------------------------------|-----------------------------------
-----------------------------------|-----------------------------------
-----------------------------------|-----------------------------------
--------------------------------پسورد--------------------------------
----------------------------------|------------------------------------
----------------------------------|------------------------------------
----------------------------------|------------------------------------
---------------------------صفحه اصلی(منو)-------------------------
---------------------------|----------------|--------------------------
---------------------------|----------------|--------------------------
---------------------------|----------------|--------------------------
--------------------- صفحه (1)--------صفحه (1)--------------------
---------------------|----|----|-------|----|----|--------------------
---------------------|----|----|-------|----|----|--------------------
---------------------|----|----|-------|----|----|--------------------
---------------------1----2----3------4----5----6--------------------

-----------------------------مشاهده پیوست sample.zip------------------------------


لطفا بعد از تکمیل کردن همین جا بزارید تا بقیه هم استفاده کنند
مــــــــــــــــــــــــــــــــــــــمـــــــــــــــــــــــــــــــنــــــــــــــــــــــــــــــــــون
:rose:
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

در مورد سوال اولتون تا جايي كه بنده اطلاع دارم خير چنين امكاني نداريد.

شما وقتي پروژه اي رو اجرا ميكنيد و تو پشت زمينه اون موسيقي رو پخش ميكنيد تا زماني كه پروژه در حال اجرا هست موسيقي هم پخش ميشه و زماني كه پروژه بعدي با RunMBD جايگزين ميشه موسيقي پروژه قبلي هم پاك ميشه.

راه حلي كه براي اين مشكل به ذهنم ميرسه اينه كه شما زمان جاري فايل صوتي رو با تابع CBK_TimeSec در زمان خروج از پروژه تو يك متغير ثبت كنيد و تو Page Start پروژه بعدي همون فايل صوتي رو پخش و با AudioRewind به زماني كه تو متغيرتون ثبت شده بريد. دراينصورت با بازشدن پروژه جديد ادامه فايل صوتي قبلي پخش خواهد شد.

البته احتمال داره كه اين جابجا شدن بين پروژه ها يك وقفه كوچك در حد چند صدم ثانيه تو پخش فايل صوتي ايجاد كنه.

براي سوال دوم هم در حالت عادي راه حلي وجود نداره. پيشنهادي كه قبلا به يكي ديگه از دوستان شده رو مجددا به شما ميكنم:

ولوم كامپيوتر كاربر رو با يك حلقه و دستور VolumeDown به صفر برسونيد. بعد فايل صوتي رو متوقف كنيد و ولوم كامپيوتر رو به حالت قبل برگردونيد. بعد از برنامه خارج بشيد.

موفق باشيد
 

kharazmi

Member
دوست عزيز

ولوم كامپيوتر كاربر رو با يك حلقه و دستور volumedown به صفر برسونيد. بعد فايل صوتي رو متوقف كنيد و ولوم كامپيوتر رو به حالت قبل برگردونيد. بعد از برنامه خارج بشيد.

تا حالا با این دستورات کار نکردم و آشنایی ندارم اگر وقت نمی گیره و می تونید می شه خواهش کنم کدش را برام بزارید
چون من اصلا نمیدونم باید چیکار کنم

ممنونم
 

evil_gates

اين نيز بگذرد ...
براي سوال اولتون:

اول فايل صوتي موردنظر رو با اين دستور تو پروژه اول اجرا كنيد:
کد:
path$='x:\myfolder\mymusic.mp3'
AudioOpen("path$")
AudioPlay()

بعد در زمان اجراي پروژه دوم با دستور RunMBD اين دستور رو بنويسيد:
کد:
time=CBK_TimeSec
RunMBD("<SrcDir>\myproject.mbd","THIS_WINDOW")

تو Page Start پروژه دوم اين دستور رو بنويسيد:
کد:
AudioOpen("path$")
AudioPlay()
AudioRewind("time","RELATIVE")
در اينصورت فايل صوتي تو پروژه اول شما پخش ميشه بعد در زمان خروج زمان جاري فايل صوتي تو متغير time ثبت ميشه و تو پروژه دوم مجددا از همون زماني كه تو time ثبت شده ادامه پخش انجام ميشه.


براي سوال دوم كه كم كردن ولوم كامپيوتر بود هم اين كد رو استفاده كنيد:
کد:
For i=100 To 1
  VolumeUp("i")
  Pause("5")
Next i
AudioStop()
VolumeUp("100")
Exit()

موفق باشيد
 

kharazmi

Member
از تکه کدی که برای سوال دوم گذاشتید استفاده کردم و درست شد ممنونم خیلی حال کردم :cool:

ولی کدی که برای سوال اول گذاشته بودید نتونستم نتیجه بگیرم

به هرحال از شما واقعا خیلی ممنونم خیلی کمکم کردید و سوالاتم را پاسخ دادید :rose:
 

kharazmi

Member
تشـــــــــــــــــــــــ ـــــــــــکر فراوان

بازم شرمنده کردید خیلی ممنون

من هم همین کارا رو کرده بودم نمی دونم چرا کار نکرد بله فایلی که گذاشتید درست و خوب کار می کرد و ازش استفاده کردم

فکر کنم همه پروژم را با کمک دوستان مخصوصا evil_gates عزیز درست کردم ....

:rose:
 

kharazmi

Member
فهمیدم مشکل چی بود من همیشه بعد از RunMBD از Exit استفاده می کنم برای همین وقتی به قسمت دیگه می ره چون قسمت اول را Exit میکنه موزیک هم قطع می شه ...

فکر کنم باید بعد از RunMBD دستور Exit را بردارم تا درست کار کنه
 

kharazmi

Member
سلام

می شه لطفا فایل زیر رو ببینید ...
روی دکمه back در صفحات کلیک کنید متوجه می شید که وقتی به صفحه اصلی بر می گرده موزیک از همون جایی که در time=CBK_TimeSec ذخیره شده دوباره پخش می شه ...
من که نتونستم درستش کنم اگه لطف کنید یک نگاهی بکنید ممنون میشم

مشاهده پیوست sample.zip
 

evil_gates

اين نيز بگذرد ...
قبل از صفحه اول يا همون صفحه main تو پروژه يك صفحه خالي قرار بديد و اين كد رو تو Page Start بنويسيد:
کد:
AudioOpen("path$")
AudioPlay()
AudioRewind("time","RELATIVE")
NextPage()

كدي رو هم كه تو Page Start صفحه main نوشته بوديد پاك كنيد.
 

kharazmi

Member
سلام مجدد

چطوری می شه وقتی موزیک تموم شد دوباره پخش بشه یعنی loop براش بزاریم ، دستور یا پارامتری هست که این کار رو بکنه ؟

با تشکر
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
بستگی داره شما از روشی و یا از چه کدی برای پخش آهنگ استفاده کرده باشید.
توابع WavePlay, BackgroundPlay و MidiPlay پارامتری بعنوان Loop رو میپذیرن که اینکار رو میکنه.
اگر هم از قسمتی که در تنظیمات هر صفحه هست برای پخش آهنگ استفاده میکنید، خودش یک گزینه برای Loop شدن داره.

به هر حال شما اگر یک اسکریپت ایجاد کنید تحت نام CBK_AudioEOF بعد از اتمام هر آهنگ این اسکریپت اجرا میشه که میتونید دستوری توش بنویسید که همون آهنگ رو دوباره پخش کنه.
 

kharazmi

Member
ممنون از جوابتون
کد زیر را استفاده کردم

کد:
path_music_video$='<SrcDir>\music_art\video.mp3'
AudioOpen("path_music_video$")
AudioPlay()

این کد را در PageStart گذاشتم و با اجرای برنامه موزیک هم پخش می شه ولی وقتیموزیک تموم میشه نمی دونم چطوری دوباره اجراش کنم ! ؟
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
عرض کردم که، یک اسکریپت ایجاد کنید (اصلاً در MasterPage) و اسمش رو بزارید:
کد:
CBK_AudioEOF
حالا هربار که آهنگ تموم میشه، این اسکریپت دوباره اجرا میشه، میتونید توش همون کد خودتون رو بنویسید یا اصلاً فقط بنویسید:
کد:
[COLOR=#000090][B]AudioPlay[/B][/COLOR]()
اینجوری باید آهنگ دوباره اجرا بشه.
 

kharazmi

Member
همون کاری را که گفتید انجام دادم درست شد ف خیلی ممنون ...
:rose:

من کار با CBK ها رو بلد نیستم اینجا تاپیکی هست که در این رابطه توضیحی داده باشه ؟
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
انشالا در یک فرصت مناسب تمام ثابت های cbk رو توضیح میدم.

[ویرایش]
تصحیح میکنم، شما میتونید در کتاب جناب silvercover از صفحه ی 105 الی 110 توضیحات کامل این ثابت ها رو مطالعه کنید.
 

nevercom

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

جدیدترین ارسال ها

بالا