هناك طريقتان لدمج مكتبة الأوبوا في مشروعك.
دمج الأوبوا مع ميزات Gradle وCMake
هذه التعليمات مخصّصة للمشاريع التي تستخدم الإصدار 4.1.0 أو الإصدارات الأحدث من مكوّن Android Gradle الإضافي التي تستخدم التبعيات الأصلية مع ميزة CMake.
إذا كان مشروعك يستخدم الإصدار 4.0 أو الإصدار 4.0 من المكوِّن الإضافي لنظام Gradle المتوافق مع Android، أو الإصدار ndk-build
بدلاً من CMake، فستختلف العملية قليلاً. يُرجى الاطّلاع على مقالة استخدام الاعتماديات الأصلية.
تعديل Build.grale
لإضافة Oboe إلى تطبيقك أثناء استخدام الإصدار 4.1.0 من المكوِّن الإضافي Android Gradle
أو الإصدارات الأحدث، عليك إجراء الإضافات التالية إلى ملف build.gradle
في تطبيقك.
أضِف التبعية
oboe
إلى القسم "dependencies
". إذا لزم الأمر، استبدِل1.5.0
بأحدث إصدار ثابت من Oboe:dependencies { implementation 'com.google.oboe:oboe:1.5.0' }
فعِّل الخيار
prefab
في القسم "buildFeatures
".android { buildFeatures { prefab true } }
اضبط تطبيقك لاستخدام STL المشتركة:
android { defaultConfig { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } }
تعديل CMakeLists.txt
تتطلب إضافة Oboe إضافتَين إلى ملف CMakeLists.txt
الخاص بتطبيقك.
أضِف الأمر
find_package
التالي:find_package (oboe REQUIRED CONFIG)
أضِف
oboe::oboe
إلى قائمة المكتبات التي تم تمريرها إلى الأمرtarget_link_libraries
المرتبط بملفك التنفيذي الرئيسي.
الدمج مع حزمة تطوير البرامج (SDK) لألعاب Android
نزّل المكتبة وسجّلها في نظام التحكم في المصدر.
أجرِ التغييرات التالية على إعدادات إصدار مشروعك.
مكتبة ثابتة
عند الدمج مع حزمة تطوير البرامج (SDK) لألعاب Android، يتم ربطك بشكل ثابت بإصدار من مكتبة Oboe التي تم تجميعها لمجموعة ABI ومستوى واجهة برمجة التطبيقات وNDK وSTL المحدّد:
- أضِف
gamesdk/include
إلى برنامج تجميع المسارات. أضف مسارًا للنموذج التالي في مسارات مكتبة الروابط:
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
على سبيل المثال:
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release
أضِف
-loboe_static
إلى أمر الرابط.
ولن تحتاج إلى تجميع المكتبة المشتركة في liboboe.so
، ما يعني أنّ الربط الثابت يمنحك بصمة رمز أصغر بكثير.
المكتبة المشتركة
إذا كانت تركيبة ABI ومستوى واجهة برمجة التطبيقات وNDK وSTL المطلوبة لمكتبة ثابتة غير متاحة للإعدادات، يمكنك الربط بالمكتبة المشتركة بدلاً من ذلك:
اتبع الخطوتين 1 و2 من القسم السابق (حول المكتبة الثابتة) لتحديث مسارات تضمين المحول البرمجي، واستخدم ملف العنوان المناسب.
أضف مسارًا للنموذج التالي في مسارات مكتبة الروابط:
gamesdk/libs/architectureAPIapiLevelNDKndkVersion_stlVersion_Release/lib/oboe
Add
-loboe -lOpenSLES
to your linker command.
Using CMake (static library only)
If you're using CMake, see the gamesdk/samples/bouncyball/app/CMakeLists.txt
file in the downloaded SDK for an example CMake configuration. It includes a
utility file called gamesdk/samples/gamesdk.cmake
, which performs final
checks, adds the proper compiler include paths, and generates a target that you
can use to link the library.
To use the gamesdk.cmake
utility:
Include this file in your
CMakeLists.txt
:// Use a relative or absolute path. For example, /home/yourusername/gamesdk // or C:\Android\gamesdk.
include("path/to/gamesdk/samples/gamesdk.cmake")
استدعِ الدالة
add_gamesdk_target
مع المجلد الذي يحتوي على gamesdk:// Use a relative or absolute path.
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
في "
target_link_libraries
" لمكتبتك الأصلية، أضِفoboe
كعنصر تبعية:// The casing of OpenSLES is important.
target_link_libraries(native-lib oboe OpenSLES ...)
للاستخدام المتقدم لأداة CMake السابقة، اطّلِع على ملف gamesdk.cmake
المصدر.
الخطوات التالية: استخدام Oboe
لتشغيل الصوت أو تسجيله باستخدام Oboe، يمكنك إنشاء بث صوتي واحد أو أكثر وتفعيله، واستخدام معاودة الاتصال لتبادل الصوت بين أجهزة إدخال/إخراج الصوت وتطبيقك. يمكنك الاطّلاع على استخدام Oboe.