You are on page 1of 11

‫‪Create an Application to Play Music.

‬‬

‫في هذا التطبيق سوف نتعلم شئ أساسي ببرمجة ‪ Fulttter‬وهو ‪ Packages‬وهي البرامج المساعده مفتوحة المصدر‬
‫اللتي سوف توفر عليك كثير من الوقت عند برمجة تطبيقك ‪.‬‬
‫أوال نقوم بعمل مشروع جديد مثل ما اتعلمنا سابقا ونقوم باسميته ‪ music_app‬ونقم باألعدادات االساسية وتصميم‬
‫التطبيق وتحديد األلون كما يلي‬

‫األ ن نقوم بأختيار ملفات الصوت المراد تشغيلها وعمل لها ملف داخل مسار البرنامج تبعنا وتسميته وبعد ذالك ادراج‬
‫جميه ملفات الصوت المختارة الى هذا الملف‬
‫واألن نعدل في ملف األعدادات مثل ماعملنا عند ادراج الصور‬
‫ونستطيع أدراج الصور بنفس المكان‬

‫‪Flutter packages‬‬
‫االن حتى نمكن تطبيقنا من تشغيل الصوت البد من استخدام حزمه تعمل هذه العمل‪.‬‬
‫في األول البد أن نعرف ماهي ا ل ‪ Flutter packages‬هي عبارة عن برامج مفتوحة المصدر تم برمجتها من‬
‫قبل مبرمجين بعضها مجانيه واالخرى غير مجانيه وسمحو لنا بأستخدامخها حتى نحصل على هذه الحزم البد لنا ان‬
‫بحث عليها من خالل هذا الموقع‬

‫‪https://pub.dev/‬‬

‫‪/https://fluttergems.dev‬‬
‫نقوم بالبحث للحزمه المناسبة بالنسبه لنا حيث هناك أكثرمن حزمه ممكن تقوم بهذا العمل‬

https://pub.dev/packages/audioplayers/versions/1.2.0

https://github.com/AgeOfLearning/flutter_audioplayers/blob/
master/doc/audio_cache.md
assets_audio_player 3.0.6

https://pub.dev/packages/assets_audio_player

just_audio: ^0.9.31
https://pub.dev/packages/just_audio
‫هنا طرحنا ثالث امثله وفي هذا البرنامج سوف نشتغل مع ‪ audioplayers‬وبعد أن تعلمنا كيف تنسيق هذه‬
‫الحزمه نأتي ألستدعها في البرنامج تبعنا‬
‫اوال تعديل ملف االعدادات‬
‫ثانيا استدعاء المكتبه‬

‫ثانيا استدعاء المكتبه الخاص بهذه الحزمه وبعد ممكن نستدعي الكائنات اللتي تعمل مع هذه المكتبه ولنعود لصفحة‬
‫هذه الحزمه هناك تعليمات كيف االستدعاء‬

‫‪https://github.com/AgeOfLearning/flutter_audioplayers/blob/‬‬
‫‪master/doc/audio_cache.md‬‬

‫ثالثا نقوم بعمل زر عند الضغط علية يشغل الموسيقى المراده وسوف نشرح ال ‪ button‬الحقا ً دعونا االن نتحدث‬
‫عن االخطاء التي سوف توجهنا في ‪ pub get‬وكيف حلها أيضا المشاكل التي سوف توجهنا في تشغيل المحاكي‬
ERROR:D8: Cannot fit requested classes in a single dex file (# methods: 73986 > 65536)
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex
archives:

https://www.youtube.com/watch?v=oBaUVcOLmOw
‫‪https://developer.android.com/studio/build/multidex‬‬

‫بعد أصالح االخطاء الواردة أعالة نعود الى برمجة التطبيق تبعمنا ونستدعي ملفات‬
‫الصوت من خالل الضغط على أحد األزرار ‪.‬‬
‫فلذالك نقوم بأنشاء زر ونوكل الحدث عند الضغط بتشغيل الصوت كما هو موضح‬
‫بالبرنامج التالي‬
‫مالحظة عند تنفيذ البرنامج السابق سوف ينفذ بشكل طبيعي ولكن عند الضغط على‬
‫الزر سوف تظهر مشكله (في حالة أنك تشتغل على محاكي االندرويد) وأذا كنت تشتغل‬
‫على ماكي المتصفح او سطح الكمبيوتر سوف يشتغل الصوت بدون أي مشاكل ‪.‬‬

‫المشكلة التي سوف تصادفك عند العمل على محاكي االندرويد هي ‪:‬‬
‫‪parameter format not correct‬‬
‫‪D/eglCodecCommon(18593): setVertexArrayObject: set vao‬‬
‫‪to 0 (0) 1 0‬‬
‫ولحل هذه المشكله اتبع التعليمات التالية أدخل على هذا الملف اللي في المسار المشار‬
‫اليه ادناه‬
‫‪gradle->wrapper->gradle-wrapper.properties‬‬

‫وقم بتعيل االستدعاء االخير‬


‫‪distributionUrl=https://services.gradle.org/distributions/gradle-6.6.1-all.zip‬‬

‫إلى‬

‫‪distributionUrl=https://services.gradle.org/distributions/gradle-7.6-all.zip‬‬

‫وبهذا األمر سوف تسدعي اخر نسخة من ‪ gradle‬وسوف تحل لك المشكله ويجب ان‬
‫يتوفر لديك انترنت وان تنتظر بعض دقائق ‪.‬‬
‫أخيرا بعد أن يكمل التحميل يكون البرنامج جاهز لتنفيذ وتشغيل الصوت‬

You might also like