PDA

View Full Version : مبتدی: چگونه میتوان ساعت گویا ساخت؟



javid alami
سه شنبه 11 مهر 1396, 13:18 عصر
با عرض سلام و روز بخیر
دوستان گرامی من توی فرمم یک ساعت دارم ، میخواهم هر زمانی را که کاربر انتخاب کرد ، بصورت گویا ، زمان برای او اعلان شود.
ممنون میشم رهنمائی کنید.

Mahmoud Zaad
سه شنبه 11 مهر 1396, 14:35 عصر
سلام
اول احتیاج دارید فایل صوتی شماره های 1 تا 59 و همچنین فایل صوتی کلمات "ساعت" و "و" یا "او O" رو داشته باشید با فرمت wav (فایل صوتی اعداد فکر می کنم توی سایت یا اینترنت باشه) بعد اعداد ساعت رو با استفاده از تابع Split و کاراکتر ":" جدا سازی کنید و در نهایت فایل های مربوطه رو پیدا و play کنید.

این برای جداسازی یک رشته با استفاده از Split
string[] _time = str.Split(':');string _hour = time[0];
string _min = time[1];

این برای اجرای یک فایل صوتی
private void playSound(string path)
{
System.Media.SoundPlayer player =
new System.Media.SoundPlayer();
player.SoundLocation = path;
player.Load();
player.Play();
}

javid alami
سه شنبه 11 مهر 1396, 16:07 عصر
باعرض سلام
نهایت سپاس دوست عزیز ، معلومات مفیدی است ، اما من چون تازه کارم اگر کمی بیشتر توضیح بدهید و مراحل کار را کمی جزئی تر کنید ممنون میشوم.
از راه حل شما ، هدف مسیر حرکتم را میدانم اما جزئیتاتش را نمی دانم .
باز هم ممنون دوست عزیز

Mahmoud Zaad
سه شنبه 11 مهر 1396, 17:57 عصر
تونستید ساعت سیستم رو به دست بیارید و در یک متغیر string بریزید؟ مثلا: 18:25
تونستید این متغیر رو به دو بخش تفکیک کنید مثلا 18 و 25؟
فایل ها رو پیدا کردید؟
تونستید یک فایل صوتی رو اجرا کنید؟

روال به همین شکلی هست که گفتم یعنی:
1- فایل های صوتی مربوط به اعداد رو به ترتیب شماره گذاری کرده و در یک پوشه قرار بدید.
2- ساعت سیستم را با فرمت 00:00 به دست بیارید و در یک متغیر string بریزید.
3- با دستور بخش اول پست قبل، مقدار ساعت که در قسمت 2 به دست آوردید رو تفکیک کنید.
4- با دستور دوم پست قبل، فایل های متناظر رو play کنید.

javid alami
چهارشنبه 12 مهر 1396, 07:26 صبح
باعرض سلام
بله فایل های صوتی اعداد فارسی را بدست آوردم
و دارم روی بدست آوردن و تفکیک زمان بدست آمده کار میکنم
باز هم ممنون دوست عزیز.

javid alami
پنج شنبه 13 مهر 1396, 07:23 صبح
باعرض سلام و صبح بخیر
دوست عزیز ! من زمان را از سیستم بدست آوردم با استفاده از قطعه کدی که در تصویر میبینید ، آیا باز هم با توچه به اینکه زمان در این کد جدا سازی شده ، نیاز هست از Split استفاده کنیم؟
146598

javid alami
پنج شنبه 13 مهر 1396, 07:56 صبح
با سلامی مجدد
دوست عزیز ، طبق تصویر زیر ، من کد هایم را نوشتم اما خطا داره بعدا هم نمی دونم مرحله بعدی(بعد از رفع این خطا) برای پخش فایل باید دیگه چیکار کنم؟
ممنون میشم رهنمائیم کنید.
146599

رامین مرادی
پنج شنبه 13 مهر 1396, 08:39 صبح
خط اول تابع Time متغییر Time اولی رو به str تغییر نام بده

خط اول تابع Time متغییر Time اولی رو به str تغییر نام بده
در ضمن اون اسپلیت اون وسط دقیقا چیکار میکنه؟:متفکر: هیچکار:لبخند:

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

}
playSound("c:\voice"+hour+".wav")
playSound("c:\voice\O.wav")
playSound("c:\voice"+minute+".wav")
playSound("c:\voice\O.wav")
playSound("c:\voice"+Secde+".wav")
{

private void playSound(string path)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = path;
player.Load();
player.Play();
}

Mahmoud Zaad
پنج شنبه 13 مهر 1396, 11:03 صبح
باعرض سلام و صبح بخیر
دوست عزیز ! من زمان را از سیستم بدست آوردم با استفاده از قطعه کدی که در تصویر میبینید ، آیا باز هم با توچه به اینکه زمان در این کد جدا سازی شده ، نیاز هست از Split استفاده کنیم؟
146598

سلام
نه دیگه نیاز نیست، من برای حالتی فرض کردم که شما ساعت رو به شکل 11:12 مثلاً در دیتابیس ذخیره کرده اید.
برای مرحله بعدی، برا اساس اعداد ساعت و دقیقه باید توی پوشه بگردید و فایل مرتبط رو پیدا کرده و اجرا کنید. البته این برای حالتی هست که شما برای همه اعداد از 1 تا 59 فایل صوتی داشته باشید که معمولا اینطور نیست و اعداد از 1-19 و همچنین 20، 30، 40، 50 موجوده. که در این حالت باید اعداد بیشتر از 19 رو بررسی کرده و با توجه به فایل های موجود، فایلهای مرتبط رو اجرا کنید. مثلاً اگر ساعت 21:35 دقیقه باشه، شما باید فایل های "ساعت"، "20"، "و"، "1"، "و"، "30"، "و"، "5"، "دقیقه" رو اجرا کنید.

javid alami
شنبه 15 مهر 1396, 09:09 صبح
باعرض سلام مجدد
دوست نهایت عزیز ، من ساعت را توی یه متغیر ذخیرش کردم حالا نمی دونم که چطور فایل صوتی مربوط به اون ساعت را پخش کنم ( هرچند شما کد پخش را هم نوشتید ) اما نمیدانم از کجا شروع کنم و چطور ازش استفاده کنم . اگه ممکنه لطف کنید از بعد از بدست آوردن ساعت ( عکسش ضمیمه هست) برایم کمی واضح تر توضیح بدین ( سطحم خیلی مبتدیه ).
146626

Mahmoud Zaad
شنبه 15 مهر 1396, 09:46 صبح
ببینید الان با احتساب ثانیه، شما 3تا متغیر می خواید.(گفتم اون توضیح قبلی برای زمانی بود که شما ساعت رو با فرمت 10:11 ذخیره کرده بودید.)
خب مثلاً برای ساعت : string _hour = System.DateTime.Now.Hour; حالا :
playSound("c:\voice"+_hour+".wav");
همین رو دوستمون هم گفته بودن.