عضویت در سایت

ورود

فراموشی رمز عبور

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

کد امنیتی برای بروزرسانی کد امنیتی روی تصویر کلیک کنید

ورود

عضویت در سایت

رایگان ثبت نام کنید و سوالات خود را بپرسید، همچنین میتوانید در پاسخگویی به سوالات دیگر کاربران نیز سهیم باشید، هر مشکلی در ثبت نام یا ورود داشتید با ایمیل beporsam@gmail.com در ارتباط باشید

در بین 1056 آموزش و 1866 پرسش به دنبال چه هستید؟

ویندوز
نصب آنلاین ویندوز

ویندوز 7,8,10,11
مشاوره
مشاوره خرید لپ تاپ و کامپیوتر

مشاوره حرفه ای دریافت کن
بلاگ
مقالات آموزشی

1k+
پشتیبانی آنلاین

سخت افزار/نرم افزار

آموزش ساخت اپلیکیشن تبدیل صدا به متن در B4A – جلسه پنجم

سلام

با پنجمین جلسه ی آموزشی ساخت اپلیکیشن تبدیل صدا به متن در بیسیک فور اندروید در خدمتتون هستیم؛ در این قسمت قصد داریم تا پخش فایل صوتی، تغییر فونت و نمایش رکوردهای دیتابیس را توضیح دهیم، در ادامه همراه بپرسم باشید.

دوره آموزشی تبدیل صدا به متن b4a

دوره آموزشی تبدیل صدا به متن b4a

در این جلسه یادخواهید گرفت:

  • کار با کتابخانه media player و پخش صدا
  • دستور تنظیم فونت برای نوشته به صورت کدنویسی ( نوشته دکمه، لیبل، جعبه متن و… )
  • نمایش رکوردهای داخل دیتابیس ( ادامه مورد کار با دیتابیس آفلاین و کوئری Select جلسه قبل )

کتابخانه media player:

با استفاده از این کتابخانه، میتوانید فایل های صوتی را پخش کنید، حالا نحوه کار با این کتابخانه را توضیح میدهیم:

  • این قابلیت در خود بیسیک فور اندروید وجود دارد و نیازی نیست که کتابخانه خاصی را علامت بزنید.
  • ابتدا می آییم و کتابخانه را تعریف میکنیم:

Private mp As MediaPlayer

  • سپس آن را راه اندازی میکنیم:

mp.Initialize

نکته: اکثر کتابخانه ها حاوی دستور IsInitialized هستند.

  • این دستور چک میکند که آیا کتابخانه راه اندازی شده است یا نه. اگر مقدار آن برابر true باشد به معنی این است که کتابخانه راه اندازی نشده است و اگر برابر false باشد به این معنی است که  کتابخانه راه اندازی شده است.
  • برای کتابخانه مدیا پلیر هم به همین شکل، پس بهتر است که ما این طور کتابخانه را راه اندازی کنیم:

If mp.IsInitialized=False Thenmp.InitializeEnd If

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

  • توی مرحله بعدی باید فایل صوتی را که میخواهیم اجرا کنیم را به عنوان ورودی به کتابخانه دهیم.
  • هم مسیر فایل و هم نام فایل. به این صورت:
مطلب پیشنهادی:  آموزش برنامه نویسی اندروید با B4A - قسمت شانزدهم(خروجی گرفتن)

mp.Load(File.DirAssets,"sb.mp3")

پارامتر اول مسیر فایل و پارامتر دوم نام فایل.

  • تا به اینجا فقط ما فایل را بارگذاری کردیم اما پخش نکردیم، با استفاده از این دستور، فایلی که بارگذاری شده است را پخش میکنیم:

mp.Play

این کتابخانه، یکی از کتابخانه های مهم و کاربردی بیسیک فور اندروید است که توابع خیلی مهمی را دارد.

چندتا از این توابع را توضیح میدهیم:

  • تابع Duration که از نوع int است و مقدار زمان فایل صوتی را به میلی ثانیه نمایش میدهد. به این شکل از این تابع استفاده میکنیم:

mp.Duration

این تابع را باید فقط نمایش دهید و هیچ گونه مقداری نمیگیرد، تابع IsPlaying زمانی استفاده میشود که میخواهیم چک کنیم آیا فایل صوتی در حال پخش است یا نه.

  • مقداری که میتوان به این تابع داد یا True است و یا False که مقدار اول یعنی فایل داره پخش میشه و مقدار دوم یعنی فایل پخش نمیشه. به این صورت استفاده میشود:

mp.IsPlaying=Truemp.IsPlaying=False

  • تابع Looping هم از اهمیت بالایی برخوردار است و برای اینکه پخش یک فایل صوتی را تکرار کنیم، استفاده میشود. به این صورت:

mp.Looping=Truemp.Looping=False

تابع Pause ، پخش فایل را نگه میدارد، دقت کنید که پخش فایل با این دستور متوقف نمیشود، بلکه نگه داشته میشود و وقتی دوباره پلی شود، فایل از همانجایی که پاز شد شروع به پخش میکند.

  • به این صورت استفاده میشود:

mp.Pause

دستور Position زمان پخش فعلی فایل را در خود دارد، یعنی این که اگر زمان فایل ما در پخش ۱۰:۱۱ باشد، توسط این دستور نمایش داده میشود.

  • به این صورت آن را مینویسند:
مطلب پیشنهادی:  آموزش برنامه نویسی اندروید با B4A - قسمت دوم(آشنایی با محیط نرم افزار)

mp.Position

  • دقت کنید اگر دستور Release را در هر کتابخانه ای مشاهده کردید، ازش به جا و به موقع حتما استفاده کنید. این دستور باعث میشود تا کتابخانه مربوطه بهینه تر کار کند.

mp.Release

  • یکی دیگر از دستورات مهم، دستور SetVolume است، این دستور صدا را برای اسپیکر یا گوش هدفون سمت چپ و راست، تنظیم میکند.

mp.SetVolume(۱۰,۱۰)

پارامتر اول تنظیم صدا برای گوش چپ و پارامتر دوم تنظیم صدا برای گوش راست.

  • و در آخر دستور Stop که باعث توقف پخش فایل به صورت کامل میشود.

mp.Stop

تنظیم فونت

  • برای تنظیم فونت دلخواهتون، در بخش کدنویسی میتوانید از دستوز زیر استفده کنید:

txt_title.Typeface=Typeface.LoadFromAssets("beporsam_font.ttf")

در این خط ما آمدیم و فونت متن یک جعبه متن را بلد کردیم. دقت کنید که فایل beporsam_font.ttf باید در پوشه files وجود داشته باشد.

حالا اگر ما بخواهبم از طریق دیزاینر اسکریپت این کار را انجام دهیم، باید ابتدا فونت مورد نظر را در دیزاینر اسکریپت اضافه کنیم و بعد با استفاده از ویژگی Typeface مقدار فونت را برای نوشته تغییر دهیم.

نمایش رکوردهای داخل دیتابیس آفلاین

برای این کار، بعد از این که دیتابیس را در حافظه گوشی ایجاد کردیم و آن را راه اندازی کردیم ( در جلسه قبلی کپی دیتابیس در حافظه و راه اندازی آن را یاد دادیم ) حالا یک کوئری میزنیم و آن را داخل یک کرسر ذخیره میکنیم.

  • به این صورت:

Private cur_voice As Cursor

  • ابتدا کرسر را از کتابخانه اس کیو ال تعریف کردیم، سپس کوئری مورد نظر را داخل آن میریزیم:
مطلب پیشنهادی:  پخش فایل های ویدئویی در حافظه بیسیک فور اندروید

cur_voice=sql.ExecQuery("SELECT * FROM tbl_voice")

  • در اینجا جدول voice را انتخاب کردیم و همه رکوردها را داخل متغیر curser مان ذخیره کردیم، دقت کنید که اگر در جدولتان یک رکورد دارید به راحتی میتوانید آن را اینگونه نمایش دهید:

cur_voice.Position=۱

ابتدا موقعیت رکوردی را که توی دیتابیس ثبت کردیم را مشخص میکنیم که در اینجا موقعیتش ۱ است، اگر چند رکورد داشتیم که باید یک حلقه فور بزنیم تا یکی یکی خانه های رکورد را بشمارد و بخواند.

  • اینگونه:

For i=۰ To cur_ voice.RowCount-۱cur_voice.Position=iNext

در این حلقه، حلقه می آید از اولین رکورد تا آخرین رکورد را میشمارد و هر دفعه موقعیت جدیدی را به cur_voice میدهد.

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

lbl.Text= cur_voice. GetString("title")

با استفاده از دستور بالا، متن لیبل را برابر قرار دادیم با رکوردی که در جدول voice در فیلد title قرار دارد. به همین ترتیب میتوانید دیگر عناصر جدول را بگیرید و پردازش کنید.

  • البته یادتان باشد که باید اینگونه نوشته شود:

For i=۰ To cur_ voice.RowCount-۱cur_voice.Position=ilbl.Text= cur_voice. GetString("title")Next

آموزش را همینجا به پایان می رسانیم، همراه ما باشید با ادامه آموزش ها …

مشکلی یا سوالی داشتید میتوانید در بخش پرسش و پاسخ سایت، سوال خود را بپرسید.

موفق باشید.

درباره مرتضی صباغیهمکار سایت

برنامه نویس و مدرس بیسیک فور اندروید کانال سروش بیسیک @basic4android_langueg

دنبال کردن

ارسال نظر

رفتن به بالا

سامانه آموزشی و خدماتی بپرسم

اولین وب سایت آموزشی و پرسش و پاسخ در ایران

بپرسم را میتوان به عنوان مرجعی برای آموزش و حل مشکلات دانست، در بپرسم سعی کرده ایم آموزش های برنامه نویسی، طراحی سایت، کار با نرم افزارها ها و… را آموزش دهیم. همچنین محیطی فراهم کرده ایم تا کاربران بتوانند در این محیط سوالات خود را بپرسند و مشکل خود را حل کنند.