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