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

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

استخدام المزمار مع Gradle وCMake

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

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

تعديل Build.gradle

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

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

    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

يجب إضافة إضافتَين إلى ملف CMakeLists.txt الخاص بتطبيقك.

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

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

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

  1. تنزيل المكتبة والاطّلاع على المعلومات إلى نظام التحكم في المصدر.

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

مكتبة ثابتة

عند الدمج مع حزمة SDK لألعاب Android، يتم الربط بشكل ثابت بإصدار. من مكتبة الأوبوا التي تم تجميعها لواجهة التطبيق الثنائية (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 إلى أمر الربط.

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

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

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