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

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

دمج Oboe مع Gradle وCMake

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

إذا كان مشروعك يستخدم الإصدار 4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android أو 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 وAPI و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 إلى أمر linker.

ولست بحاجة إلى تجميع مكتبة 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.