PDA

View Full Version : سوال: نحوه اجرا کردن یک فایل صوتی در زمان دلخواه؟



Behnam6670
شنبه 28 اردیبهشت 1392, 18:14 عصر
104347
سلام چجوری میتونم در زمان مشخص یه فایل صوتی رو رو اجرا کنم.زمان شروع و پایان رو خودم بهش میدم.و تو لیست ذخیره میکنم.عکس بالارو ببینید

mousa1992
شنبه 28 اردیبهشت 1392, 18:33 عصر
سلام
دو راه برا انجامش داری
1 - استفاده از تایمر و ترد ها و مقایسه تاریخ زمان سیستم با زمان های ثبت شده برای اجرای فایل و پایان
2 - استفاده از توابع wmi - هر وقت زمان مورد نظرتون فرا رسید فایل رو اجرا میکنید ( که راه دوم 100% (یخورده بیشتر) بهتر و بهینه تر هست )
اینم لینک واسه راه دوم (http://stackoverflow.com/questions/295235/getting-notified-when-the-datetime-changes-in-c-sharp)

موفق باشید

aradrobo
شنبه 28 اردیبهشت 1392, 20:38 عصر
با گزینه یک mousa1992 موافق هستم.

Behnam6670
یک شنبه 29 اردیبهشت 1392, 06:54 صبح
سلام میشه درباره روش اول یکم بیشتر توضیح بدید.با ترد کار کردم ولی نه زیاد

Behnam6670
یک شنبه 29 اردیبهشت 1392, 12:21 عصر
میشه لطفا یک نفر راهنمایی کنه

mthreat.info
یک شنبه 29 اردیبهشت 1392, 12:39 عصر
میشه لطفا یک نفر راهنمایی کنه
میشه بگید کجا مشکل دارید؟

Behnam6670
یک شنبه 29 اردیبهشت 1392, 13:11 عصر
فقط اینکه اون فایل صوتی رو چجوری بیاد دقیقا تو زمان شروع بیاد پخش بکنه
و اینکه چجوری همیشه کل لیست رو قسمت زمان شروع رو چک کنه تا هر تایمی که با تایم جاری یکسان بود دقیقا اونو پخش کنه؟؟؟؟

erfan_urchin
یک شنبه 29 اردیبهشت 1392, 13:22 عصر
تو تایمر یک کدی مثل کد زیر رو بزارید
if(DateTime.Now.Hour==15 && DateTime.Now.Minutes==10)
sp.Play();
این کد آهنگ رو راس 15:10 اجرا میکنه

Behnam6670
یک شنبه 29 اردیبهشت 1392, 13:35 عصر
من دقت خیلی برام مهمه حتی نمیخوام یک ثانیه هم اینور اونور بشه.
چجوری در همه لحضه ها کل لیست رو جستجو کنه؟؟؟؟؟

mthreat.info
یک شنبه 29 اردیبهشت 1392, 13:50 عصر
من دقت خیلی برام مهمه حتی نمیخوام یک ثانیه هم اینور اونور بشه.
چجوری در همه لحضه ها کل لیست رو جستجو کنه؟؟؟؟؟

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

Behnam6670
یک شنبه 29 اردیبهشت 1392, 14:50 عصر
ممنون از دوستان که دارن جواب میدن
فرض کن من روزی 6 بار میخوام تو فواصل زمانی مختلف سیستم بصورت اتوماتیک تو هر زمان یه فایل صوتی رو پخش کنه.
اول اینکه این برنامه قرار هستش فقط اول صبح وقتی که سیستم روشم میشه تا آخر شب که خاموش میشه فقط یکبار اجرا بشه
و کاربر فقط لیست پخش رو یکبار میخواد به برنامه بده دیگه کاری نداره به اجرا کردن فایل
بنظرتون چجوری میتونه تو بک گراند همیشه بیاد زمان های تعیین شده رو چک بکنه؟
آیا میتونم از یه تایمر استفاده کنم و هربار که برنامه اجرا میشه Enable تایمر روشن باشه و تو تایمر کد مربوط به چک کردن رو انجام بدم؟
بازم میگم اینکه فایلها دقیقا سر زمان تعیین شده اجرا بشه خیلی مهم هستش

mthreat.info
یک شنبه 29 اردیبهشت 1392, 15:00 عصر
ببینید شما اول بگیر زمان اول جدول رو بگیر ( جدول بر اساس زمان پخش مرتب شده باشه ) بعد اگر زمان مساوی زمان تو جدول بود فایل مورد نظر پخش بشه ، تایمر خوبه ولی دقیق نیست! ، برنامه هم وقتی یک بار اجرا شد لازم نیست تو دید باشه Try Icon ( کنار ساعت ) استفاده کنید!

Behnam6670
یک شنبه 29 اردیبهشت 1392, 15:24 عصر
خب این چک کردن زمان تو چه متدی باید نوشته بشه که همیشه بتونه تایم جاری رو با تایم توی لیست چک کنه؟؟؟؟؟؟

mthreat.info
یک شنبه 29 اردیبهشت 1392, 15:42 عصر
اینا رو check کن
http://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.71).aspx

http://www.codeproject.com/Articles/5557/Win-32-API-Timers-for-NET

http://www.codeproject.com/Articles/2635/High-Performance-Timer-in-C

http://stackoverflow.com/questions/2796216/system-threading-timer-example-to-run-and-display-seconds-until-you-click-a-butt

http://msdn.microsoft.com/en-us/library/swx5easy.aspx

فکر کنم با API بهتر باشه

Behnam6670
یک شنبه 29 اردیبهشت 1392, 17:50 عصر
ممنون از همه مهندسا
ولی اگه یه نفر یه راه بهتری داره لطفا راهنماییم کنه

Behnam6670
یک شنبه 29 اردیبهشت 1392, 21:49 عصر
آقا یه نفر نیست جواب مارو بدههههههههههههههههههههههه ههههههههههههههه

mousa1992
دوشنبه 30 اردیبهشت 1392, 15:11 عصر
بهتون گفتم که راه دومو توصیه میکنم - مخصوصا اگه پردازش هاتون زیاد باشه
توی لینکی که گذاشتم کد گذاشته و توضیحات هست لطفا مطالعه کنید

______________
اما اگه میخوای روش اول رو انجام بدی که شاید ساده تر باشه ولی پردازش سنگین تر میشه (چون زمان دقق براتون مهمه پس باید هر یک ثانیه یک بار چک کنی کل لیستتو - اگه تو لیست رویداد های مربوط به تاریخ های مختلف داری کل لیست رو چک نکن ، با اجرای برنامه ی سرچ انجام بده اون رویدادهایی که مربوط به تاریخ امروز میشه رو بریز توی ی لیست ارایه و ... و توی اون لیست مرتب سرچ کن و ... )
خب فرض کن ی گرید داریم که توی هر سطرش ی رویداد هست ، شما میای با نوشتن ی حلقه سطر به سطر گرید رو چک میکنی و اگه زمان ثبت شده برابر با زمان الان شد فایل صوتی رو اجرا میکنی و ...
بازم توصیه من اینه که از روش دوم استفاده کنی

موفق باشی