پیاده سازی پخش کننده موزیک با زبان C و GTK-2.0 ( قسمت اول )

بسم الله الرحمن الرحیم


سلام


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

اول از همه لازمه Code Blocks IDE رو روی سیستم نصب کنید . که معمولا روی اوبونتو با دستور زیر به راحتی نصب میشه

sudo apt install codeblocks 

بعدش نیازه بسته gtk-2.0 رو هم نصب کنیم که روی اوبونتو با دستور زیر نصب می شه :‌

sudo apt install libgtk2.0-dev

خب وقتی ملزومات اولیه رو نصب کردیم codeblocks رو باز می کنیم یک پروژه gtk ایجاد می کنیم .

ایجاد پروژه
ایجاد پروژه

وقتی مراحل اولیه ایجاد پروژه رو طی کردیم چنین محیط رو خواهیم داشت :

وقتی به این مرحله رسیدیم کل محتوا فایل main.c رو پاک می کنیم و می ریم سر اصل مطلب .

اول از همه هدر های مورد نیاز رو اینکلود می کنیم .

بعد تابع main رو تعریف کرده و متغیر های مورد نیاز رو تعریف می کنیم (‌ اگر حین کد نوشتن فهمیدید به متغیری نیاز دارید سعی کنید اونو اول تابع main تعریف کنید چون معمولا این طوری خوانایی کد بیشتر میشه , البته واضحه که هیچ اجباری نیست )


کد برنامه رو تا این مرحله روی گیت هاب گذاشتم اینم لینکش :‌

https://github.com/Abolfazl-Dalily/DMusicPlayer


تا اینجا کد ui اولیه برنامه رو پیاده سازی شده که خروجیش عکس زیر می شه


خب تا اینجا کار یک ui داریم که حداقل نیاز ما برای یک پخش کننده موزیک رو داره , اما اگه دقت کنید می بینید یک قسمت اساسی در ui وجود نداره که اونم منو برنامست .

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

یک نکته ای که ضروریه بگم اینه که , تصمیم من این بود برای هر قسمت کد توضیحی هم بنویسم اما وقتی توضیحاتی که نوشته بودم رو خوندم به نظرم خوب از کار درنیومده بود . برای همین تصمیم گرفتم هر مرحله که پروژه رو جلو می برم تو یک قسمت جدید کار های انجام شده رو بگم و کد های جدید رو روی گیت push کنم . در نهایت اگه سوالی در مورد کد یا هر نظر دیگه داشتید خوشحال میشم در بخش نظرات بشنوم :)


خب رسیدیم به پایان قسمت اول

https://virgool.io/@abolfazldalily/%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AD%D9%84-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D8%B3%D9%88%D8%AF%DA%A9%D9%88-99-%D8%A8%D8%A7-%D8%B2%D8%A8%D8%A7%D9%86-c-%D9%88-gtk2-0-laxa83pwd8pf
https://virgool.io/@abolfazldalily/%D9%86%D9%88%D8%B4%D8%AA%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A8%D8%A7%D8%B2%DB%8C-snake-%D8%A8%D8%A7-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%DB%8C-%D9%BE%D9%84%D8%A7%D8%B3-%D9%BE%D9%84%D8%A7%D8%B3-nc2rm6rwwplz