Skip to content

ข้อควรระวังที่ทราบ

การใช้อินพุตเสียงร่วมกันบน Android

มีข้อควรระวังที่ทราบเกี่ยวกับการบันทึกเสียงบนอุปกรณ์ Android

ลักษณะการใช้งานไมโครโฟนร่วมกันของ Android ขึ้นอยู่กับเวอร์ชันของระบบปฏิบัติการและแหล่งเสียงที่แต่ละแอปใช้

โปรดดูรายละเอียดในคู่มือแพลตฟอร์ม Android:

การใช้อินพุตเสียงร่วมกัน

Android 9 และเวอร์ชันก่อนหน้า

ก่อน Android 10 โดยทั่วไปสิทธิ์ในการบันทึกเสียงจะเป็นแบบมาก่อนได้ก่อน ขณะที่การรู้จำเสียงของ SORI SDK ทำงานอยู่ แอปทั่วไปอื่นอาจไม่สามารถเริ่มบันทึกเสียงจากไมโครโฟนได้ หรือ SORI SDK อาจเริ่มทำงานไม่ได้หากมีแอปอื่นกำลังบันทึกเสียงอยู่แล้ว

แอปที่มีสิทธิ์ระดับระบบ เช่น ผู้ช่วยหรือบริการการช่วยเหลือพิเศษ อาจเป็นข้อยกเว้นของลักษณะการทำงานนี้

Android 10 และเวอร์ชันใหม่กว่า

Android 10 เริ่มใช้รูปแบบการใช้อินพุตเสียงร่วมกันตามลำดับความสำคัญ ในรูปแบบนี้ แอปอื่นสามารถเริ่มบันทึกเสียงได้ในขณะที่การรู้จำของ SORI SDK กำลังทำงาน การบันทึกเสียงที่มีลำดับความสำคัญต่ำกว่าไม่จำเป็นต้องหยุดทำงาน แต่สามารถทำงานต่อไปโดยได้รับข้อมูลเสียงเงียบ

ประเด็นนี้สำคัญอย่างยิ่งเมื่อแอปอื่นใช้แหล่งเสียงที่เกี่ยวข้องกับความเป็นส่วนตัว เช่น CAMCORDER หรือ VOICE_COMMUNICATION ตัวอย่างเช่น หากแอปกล้องเริ่มบันทึกวิดีโอขณะที่การรู้จำของ SORI SDK ทำงานอยู่ แอปกล้องจะรับเสียงจากไมโครโฟนได้ ขณะที่ SORI SDK อาจได้รับข้อมูลเสียงเงียบชั่วคราว เมื่อการบันทึกเสียงที่มีลำดับความสำคัญสูงกว่าหยุดลง Android สามารถสลับ SORI SDK กลับไปใช้อินพุตไมโครโฟนตามปกติได้โดยไม่ต้องเริ่มการรู้จำใหม่

ใน SORI SDK เวอร์ชันที่ใช้การบันทึกเสียงอย่างต่อเนื่องของ Android 10 ขึ้นไป การเปลี่ยนผ่านนี้จะได้รับการจัดการเป็นส่วนหนึ่งของการบันทึกเสียงตามปกติ ผลลัพธ์การรู้จำอาจไม่พร้อมใช้งานขณะที่ SORI SDK ได้รับข้อมูลเสียงเงียบ และการรู้จำจะกลับมาทำงานได้หลังจากแอปที่มีลำดับความสำคัญสูงกว่าปล่อยไมโครโฟน อาจมีช่วงเวลาสั้น ๆ ในการกู้คืนก่อนที่การรู้จำตามปกติจะกลับมาทำงาน

SORI SDK สามารถรู้จำเสียงต่อไปได้แม้แอปจะไม่ได้แสดงอยู่ด้านหน้าสุดของหน้าจอ โดยใช้บริการเบื้องหน้า (foreground service) ในกรณีนี้ ผู้ใช้อาจไม่ทราบว่าการรู้จำเสียงยังคงทำงานอยู่ จึงแนะนำให้มีวิธีหยุดการรู้จำเสียงที่ชัดเจน

เกี่ยวกับการบันทึกเสียงบน iOS

การรู้จำในเบื้องหลัง

SORI SDK รองรับการรู้จำในเบื้องหลัง ซึ่งสามารถใช้งานได้เมื่อกำหนดให้ตัวบันทึกเสียงทำงานในเบื้องหลัง

คุณสามารถเปิดใช้การรู้จำในเบื้องหลังได้โดยเพิ่มคีย์และค่าต่อไปนี้ในไฟล์ Info.plist ของโปรเจกต์ โค้ดด้านล่างเป็นตัวอย่าง โดยส่วนสำคัญคือ audio

xml
<key>UIBackgroundModes</key>
<array>
    <string>fetch</string>
    <string>remote-notification</string>
    <string>audio</string>
</array>

TIP

ไม่จำเป็นต้องใช้สิทธิ์ทั้งหมด แต่การมีสิทธิ์ทั้งสามรายการข้างต้นไม่รบกวนการทำงานของ SORI SDK

ผลข้างเคียงจากการใช้การรู้จำในเบื้องหลัง

SORI SDK รับข้อมูล PCM จากไมโครโฟนผ่าน Apple Audio Queue System เพื่อฟังเสียง เพื่อให้ใช้ตัวบันทึกเสียงได้โดยไม่ขัดแย้งกับระบบหรือแอปอื่น SORI SDK จะกำหนดค่า Audio Session (AVAudioSession) ดังนี้

  • หมวดหมู่: AVAudioSessionCategoryPlayAndRecord
  • โหมด: AVAudioSessionModeMeasurement
  • ตัวเลือก: AVAudioSessionCategoryOptionMixWithOthers

ในสถานการณ์ส่วนใหญ่ การกำหนดค่า Audio Session ข้างต้นไม่ก่อให้เกิดปัญหา อย่างไรก็ตาม ในบางกรณีที่พบได้น้อย การกำหนดค่า Audio Session ของแอปบางรายการอาจทำให้เกิดผลข้างเคียงต่อการทำงานของ SORI SDK หรือแอปนั้น ๆ โดยผลข้างเคียงที่พบบ่อยที่สุดคือไม่มีเสียงออกทางลำโพงหรือหูฟัง