تعديل إعدادات إصدار Oboe

هناك طريقتان لدمج مكتبة Oboe في مشروعك.

دمج Oboe مع Gradle وCMake

هذه التعليمات مخصّصة للمشاريع التي تستخدم الإصدار 4.1.0 أو الإصدارات الأحدث من "مكوّن Android Gradle الإضافي" باستخدام التبعيات الأصلية مع CMake.

إذا كان مشروعك يستخدم الإصدار 4.0 من Android Gradle plugin أو ndk-build بدلاً من CMake، ستختلف العملية قليلاً. اطّلِع على استخدام التبعيات الأصلية.

تعديل ملف build.gradle

لإضافة Oboe إلى تطبيقك أثناء استخدام الإصدار 4.1.0 أو إصدار أحدث من المكوّن الإضافي لنظام Gradle المتوافق مع Android، أضِف ما يلي إلى ملف build.gradle في تطبيقك.

  1. أضِف التبعية oboe إلى القسم dependencies. إذا لزم الأمر، استبدِل 1.5.0 بأحدث إصدار ثابت من Oboe:

    dependencies {
        implementation 'com.google.oboe:oboe:1.5.0'
    }
    
  2. فعِّل الخيار prefab في القسم buildFeatures.

    android {
        buildFeatures {
            prefab true
        }
    }
    
  3. اضبط تطبيقك لاستخدام مكتبة STL المشترَكة:

    android {
        defaultConfig {
            externalNativeBuild {
                cmake {
                    arguments "-DANDROID_STL=c++_shared"
                }
            }
        }
    }
    

تعديل ملف CMakeLists.txt

تتطلّب إضافة Oboe إجراء تعديلَين على ملف CMakeLists.txt في تطبيقك.

  1. أضِف الأمر find_package التالي:

    find_package (oboe REQUIRED CONFIG)
    
  2. أضِف oboe::oboe إلى قائمة المكتبات التي تم تمريرها إلى الأمر target_link_libraries المرتبط بالملف التنفيذي الرئيسي.

دمج حزمة تطوير البرامج (SDK) الخاصة بألعاب Android

  1. نزِّل المكتبة وسجِّلها في نظام التحكّم بالمصادر.

  2. أجرِ التغييرات التالية على إعدادات الإصدار في مشروعك.

مكتبة ثابتة

عند الدمج مع حزمة تطوير البرامج (SDK) الخاصة بـ "ألعاب Android"، يمكنك الربط الثابت بإصدار من مكتبة Oboe تم تجميعه لمجموعة ABI ومستوى واجهة برمجة التطبيقات وNDK وSTL المحدّدة:

  1. أضِف gamesdk/include إلى مسارات التضمين في برنامج التجميع.
  2. أضِف مسارًا بالشكل التالي في مسارات مكتبة الرابط:

    gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
    

    على سبيل المثال: gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

  3. أضِف -loboe_static إلى أمر الربط.

لست بحاجة إلى تجميع المكتبة المشتركة liboboe.so، ما يعني أنّ الربط الثابت يوفّر لك حجمًا أصغر بكثير للرمز البرمجي.

المكتبة المشتركة

إذا لم يكن مزيج ABI ومستوى واجهة برمجة التطبيقات وNDK وSTL المطلوب لمكتبة ثابتة متاحًا لإعداداتك، يمكنك الربط بالمكتبة المشتركة بدلاً من ذلك:

  1. اتّبِع الخطوتَين 1 و2 من القسم السابق (حول المكتبة الثابتة) لتعديل مسارات تضمين برنامج الترجمة البرمجية، واستخدِم ملف العنوان المناسب.

  2. أضِف مسارًا بالشكل التالي في مسارات مكتبة الرابط:

    gamesdk/libs/architectureAPIapiLevelNDKndkVersion_stlVersion_Release/lib/oboe

  3. 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:

  1. 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")
    
  2. استدعِ الدالة add_gamesdk_target مع المجلد الذي يحتوي على gamesdk:

    // Use a relative or absolute path.
    add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
    
  3. في target_link_libraries الخاص بالمكتبة الأصلية، أضِف oboe كعنصر تابع:

    // The casing of OpenSLES is important.
    target_link_libraries(native-lib oboe OpenSLES ...) 
    

للحصول على معلومات حول الاستخدام المتقدّم لـ CMake، يُرجى الاطّلاع على gamesdk.cmakeملف المصدر.

الخطوات التالية: استخدام Oboe

لتشغيل الصوت أو تسجيله باستخدام Oboe، عليك إنشاء واحد أو أكثر من مصادر الصوت وتفعيلها، واستخدام عمليات معاودة الاتصال لتبادل الصوت بين أجهزة إدخال/إخراج الصوت والتطبيق. يمكنك الاطّلاع على استخدام Oboe.