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

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

دمج الأوبوا مع ميزات 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 في تطبيقك.

  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.