มี 2 วิธีในการรวมไลบรารีโอโบไว้ในโครงการของคุณ
ผสานรวมโอโบกับ Gradle และ CMake
วิธีการเหล่านี้มีไว้สำหรับโปรเจ็กต์ที่ใช้ปลั๊กอิน Android Gradle เวอร์ชัน 4.1.0 ขึ้นไป โดยใช้ทรัพยากร Dependency ของระบบ กับ CMake
หากโปรเจ็กต์ใช้ปลั๊กอิน Android Gradle เวอร์ชัน 4.0 หรือ
ndk-build
แทนที่จะใช้ CMake กระบวนการจะแตกต่างออกไปเล็กน้อย ดูการใช้ทรัพยากร Dependency แบบเนทีฟ
อัปเดตbuild.gradle
วิธีเพิ่ม Oboe ลงในแอปโดยใช้ปลั๊กอิน Android Gradle เวอร์ชัน 4.1.0 หรือ
เพิ่มรายการต่อไปนี้ลงในไฟล์ build.gradle
ของแอป
เพิ่มการอ้างอิง
oboe
ในส่วนdependencies
หากจำเป็น แทนที่1.5.0
ด้วยเวอร์ชันเสถียรล่าสุด ของโอโบ: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
การเพิ่มโอโบต้องมีการเพิ่ม 2 รายการลงในไฟล์ CMakeLists.txt
ของแอป
เพิ่มคำสั่ง
find_package
ต่อไปนี้find_package (oboe REQUIRED CONFIG)
เพิ่ม
oboe::oboe
ลงในรายการไลบรารีที่ส่งไปยัง คำสั่งtarget_link_libraries
ที่เชื่อมโยงกับไฟล์ปฏิบัติการหลักของคุณ
ผสานรวมกับ Android Game SDK
ดาวน์โหลดไลบรารีและตรวจสอบ ลงในระบบควบคุมแหล่งที่มา
ทำการเปลี่ยนแปลงต่อไปนี้ในการตั้งค่าบิลด์ของโปรเจ็กต์
ไลบรารีแบบคงที่
เมื่อผสานรวมกับ Android Game SDK คุณจะลิงก์กับเวอร์ชันแบบคงที่ ของไลบรารีโอโบที่คอมไพล์สำหรับ ABI, ระดับ API, NDK และ STL ที่กำหนด ชุดค่าผสม:
- เพิ่ม
gamesdk/include
ลงในเส้นทางการรวมของคอมไพเลอร์ เพิ่มเส้นทางของแบบฟอร์มต่อไปนี้ในเส้นทางไลบรารี Linker ของคุณ
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
ตัวอย่างเช่น
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release
เพิ่ม
-loboe_static
ลงในคำสั่ง Linker
คุณไม่จำเป็นต้องรวมไลบรารีที่ใช้ร่วมกันของ liboboe.so
ซึ่งหมายถึงแบบคงที่
การลิงก์จะให้พื้นที่ของโค้ดน้อยกว่ามาก
คลังที่ใช้ร่วมกัน
หากต้องมีชุดค่าผสม ABI, ระดับ API, NDK และ STL สำหรับไลบรารีแบบคงที่ ใช้ไม่ได้กับการตั้งค่าของคุณ คุณสามารถลิงก์กับไลบรารีที่ใช้ร่วมกันได้ แทน:
ทำตามขั้นตอนที่ 1 และ 2 จากส่วนก่อนหน้า (เกี่ยวกับไลบรารีแบบคงที่) เพื่อ อัปเดตเส้นทางที่รวมของคอมไพเลอร์และใช้ไฟล์ส่วนหัวที่เหมาะสม
เพิ่มเส้นทางของแบบฟอร์มต่อไปนี้ในเส้นทางไลบรารี Linker ของคุณ
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
ที่มีโฟลเดอร์ที่มี Game SDK:// Use a relative or absolute path.
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
ใน
target_link_libraries
สำหรับไลบรารีเนทีฟ ให้เพิ่มoboe
เป็นทรัพยากร Dependency:// The casing of OpenSLES is important.
target_link_libraries(native-lib oboe OpenSLES ...)
สำหรับการใช้งานขั้นสูงของ CMake โปรดดู gamesdk.cmake
ไฟล์ต้นฉบับ
ขั้นตอนถัดไป: การใช้โอโบ
หากต้องการเปิดหรือบันทึกเสียงด้วยโอโบ ให้สร้างและเปิดใช้งานเสียงอย่างน้อย 1 รายการ สตรีม และใช้ Callback เพื่อแลกเปลี่ยนเสียงระหว่างอินพุต/เอาต์พุตเสียง อุปกรณ์ และแอปของคุณ ดูการใช้ โอโบ