دوشنبه ۸ خرداد ۱۳۹۶
 
 
 
کلمه عبور خود را فراموش کرده اید؟
 

 
 
 پخش فایلهای صوتی (MP3 ,WMA) در کنسول #C
.NET C#
تاریخ ثبت:  ۹۲/۷/۲۷
تعداد نمایش:  ۴۲۲۱
  نویسنده: محمد مصراوغلی
 
   ۶  نفر تا این لحظه به این مقاله امتیاز داده اند.
 
   Bookmark and Share

     در این مقاله ما می خواهیم از طریق محیط Console در #C برنامه ای برای پخش فایلهای صوتی با فرمت MP3 و WMA بنویسیم. برای اجرای فایلهای صوتی می توان ازActive Move های COM استفاده کرد که از کامپوننت های Media Player می باشد و فایلهای با فرمت MP3 و WMA را پشتیبانی می کنند. کامپوننتی که از آن استفاده می شود (فایل DLL ) به نام QuartzTypelibrary است که از کامپوننت های COM محسوب می شود. این فایل مشتقی از فایل quartz.dll (جزئی از Microsoft DirectX می باشد که در Media Player و سیستم عامل ویندوز به کار می رود) می باشد. از این DLL در Using برنامه استفاده می شود.

مراحل ساختن فایل QuartzTypelibrary

 1) برنامه SDK Command Prompt را اجرا می کنیم. به این برنامه از مسیر زیر دسترسی داریم:

Start => All Programs => Microsoft .NET Framework SDK v2.0

 2) حال باید با استفاده از دستور tlbimp فایل QuartzTypelib.dll را که از فایل quartz.dll مشتق می شود، بسازیم. دستور زیر را اجرا می کنیم:

tlbimp [WindowsDir]\system32\quartz.dll /out:QuartzTypelib.dll


نکات:
 - به جای [
WindowsDir ] در خط بالا مسیر درایو و پوشه خود ویندوز رامی نویسم . مثلا c:\windows
 - توجه کنید که فایل
quartz.dll در پوشه system32 ویندوزتان می باشد.
 - فایل ساخته شده از
quartz.dll به نام QuartzTypelib.dll می باشد و در پوشه ای که برنامه Microsoft Visual Studio شما نصب است (در مسیر: Microsoft Visual Studio 8\SDK\v2.0 ) قرار دارد.
بهتر است این فایل را به پوشه برنامه تان منتقل کنید.

مراحل کار:
 1) ویژوال استودیو دات نت را باز کنید. (توجه داشته باشید که در این مقاله از ویژوال استودیو دات نت 2005 استفاده شده است).
 2) از منوی
File گزینه New و سپس گزینه Project را انتخاب کنید.
 3) در پنجره ظاهر شده گزینه
Visual C # و Console Application را انتخاب کنید.
 4) نامی را برای پروژه در نظر بگیرید و دکمه
Ok را انتخاب کنید.
 5) از قسمت
Solution Explorer (یا کلید ctrl+W,S ) روی نام برنامه کلیک راست کرده و گزینه …Add Reference را انتخاب کنید. پس از باز شدن پنجره مربوطه ازTab بالای پنجره گزینه Browse را انتخاب کنید. حال به مسیری بروید که فایل QuartzTypelib.dll در آن قرار دارد (بهتر است این فایل را به پوشه پروژه خود منتقل کنید) و OK کنید. با این کار ما این فایل DLL را به پوشه Reference درSolution Explorer خود اضافه کردیم تا بتوانیم از دستورات داخل این کامپوننت استفاده کنیم.
 6) فضای نام زیر را به برنامه اضافه می کنیم.

// کلاسهایی را برای کار با فایلها صوتی در اختیارتان قرار می دهد
 
using QuartzTypelib;

 

 


قطعه کد زیر را در برنامه می نویسیم

 

static void Main(string[] args)
  {
   string filename;
   Console.Write("Enter Name file:");
   filename = Console.ReadLine();
   FilgraphManager graphManager = new FilgraphManager();
   IMediaControl mc = (IMediaControl)graphManager;
   mc.RenderFile(filename);
   mc.Run();
   Console.WriteLine("Press Enter to continue......");
   Console.ReadKey();
   mc.Stop();
  }

 توضیح در مورد کد:

   در خط 1 یک متغیر به نام filename از نوع رشته ای (string ) تعریف شده است. در خط 2 متنی با مضمون ":Enter File Name " را در صفحه کنسول نمایش داده ایم. در خط 3 آدرس و نام فایل صوتی که کاربر وارد کرده در متغیر filename قرار می گیرد. در خط 4 واسط (interface ) از نوع FilgraphManager با نام graphManager می سازیم. این واسط برای کار با تمام فایلهای صوتی و تصویری به کار می رود و اجازه کار با این نوع فایلها را به ما می دهد. در خط 5 متغیری با نام mc از نوع واسط IMediaControl تعریف کرده ایم. ما با استفاده از IMediaControl می توانیم تمام کارهای کنترلی (Stop,Play, Pause ) و همین طور عمل Load کردن فایل صوتی در حافظه را انجام دهیم. واسط IMediaControl در درون واسط FilgraphManager می باشد. در خط 6 با تابع RenderFile فایل را در حافظه Load می کنیم پارامتر ورودی این تابع آدرس فایل صوتی می باشد. در خط 7 با متد Run فایل صوتی را اجرا کردیم. در خط 8 متنی با مضمون "......Press Enter to continue " را روی صفحه چاپ کرده ایم. در خط 9 برنامه کنسول منتظر دریافت کلیدی از صفحه کلید می ماند ولی همچنان فایل صوتی در حال پخش می باشد. اگر کلیدی را فشار دهید در خط 10 متد Stop باعث توقف خواندن فایل صوتی می شود.
نکته: متد Pause نیز موجود می باشد که در کد به کار نرفته ولی به صورت زیر می توان آن رابکار برد.

 

mc.Pause();

 

 8) حالا می توانید برنامه را اجرا کنید و نتیجه کار خود را ببینید.

  کیفیت مقاله ارائه شده از نظر شما   
برای دادن رتبه به این مقاله می بایست Login کرده باشید.
  درباره نویسنده
محمد مصراوغلی
مديرعامل گروه توليدي شمس - BOS
همه مقاله های نوشته شده توسط این کاربر (۲)
 
  پیام جدید
هیچ سؤال یا نظری برای این موضوع فرستاده نشده است.

 عنوان فرستنده تاریخ

Copyright © 2006 - 2016 All Rights Reserved.
Please direct your questions or comments to