Frontyr Digital

/

/

Video call

Video call

เพิ่มวิดีโอคอลในแอป Flutter ด้วย TRTC ภายใน 30 นาที! คู่มือ 6 ขั้นจากวิศวกรไทย

เพิ่มวิดีโอคอลในแอป Flutter ด้วย TRTC ภายใน 30 นาที! คู่มือ 6 ขั้นจากวิศวกรไทย

เพิ่มวิดีโอคอลในแอป Flutter ด้วย TRTC ภายใน 30 นาที! คู่มือ 6 ขั้นจากวิศวกรไทย

เพิ่มวิดีโอคอลในแอป Flutter ด้วย TRTC ภายใน 30 นาที! คู่มือ 6 ขั้นจากวิศวกรไทย

คำตอบสั้น

ทุกสัปดาห์ที่ทีมใช้สร้างระบบวิดีโอคอลเอง คือสัปดาห์ที่ฟีเจอร์ซึ่งลูกค้ารออยู่ยังไม่ออก ด้วย TRTC SDK (ชุดเครื่องมือสำหรับนักพัฒนา) คุณใช้ 6 ขั้น: ติดตั้ง SDK ขอสิทธิ์กล้องและไมค์ เตรียม UserSig (รหัสยืนยันตัวตนของผู้ใช้) เข้าห้อง แสดงภาพทั้งสองฝั่ง และออกจากห้องให้ถูกวิธี มือถือสองเครื่องก็วิดีโอคอลกันได้ภายในประมาณ 30 นาที

Bank

CTO, Frontyr Digital

·

·

อ่าน 15 นาที

สารบัญ

30 นาทีจากนี้ คุณจะได้อะไร?

ต้องเตรียมอะไรก่อนเริ่ม?

วิดีโอคอลบน TRTC ทำงานอย่างไร?

ทำอย่างไรให้คอลแรกติดใน 6 ขั้น?

รู้ได้อย่างไรว่าคอลใช้งานได้จริง?

คอลไม่ติด จอดำ เสียงสะท้อน แก้อย่างไร?

ก่อนขึ้น Production ต้องทำอะไรต่อ?

คำถามที่พบบ่อย

สารบัญ

30 นาทีจากนี้ คุณจะได้อะไร?

ต้องเตรียมอะไรก่อนเริ่ม?

วิดีโอคอลบน TRTC ทำงานอย่างไร?

ทำอย่างไรให้คอลแรกติดใน 6 ขั้น?

รู้ได้อย่างไรว่าคอลใช้งานได้จริง?

คอลไม่ติด จอดำ เสียงสะท้อน แก้อย่างไร?

ก่อนขึ้น Production ต้องทำอะไรต่อ?

คำถามที่พบบ่อย

ฟรีสูงสุด 28 วัน

ทดลองใช้ฟรีบนแอปของคุณ

วิศวกรไทยช่วยตั้งค่าและตอบคำถาม

30 นาทีจากนี้ คุณจะได้อะไร?

ทุกครั้งที่ผู้ใช้ต้องออกจากแอปไปคุยต่อใน LINE หรือ Zoom คุณเสียทั้งข้อมูลและโอกาสขายครั้งต่อไป คู่มือนี้เหมาะกับทีมที่มีแอป Flutter อยู่แล้ว และอยากเพิ่มวิดีโอคอลระหว่างผู้ใช้สองคน เช่น หมอกับคนไข้ ติวเตอร์กับนักเรียน หรือช่างกับลูกค้า เมื่อทำครบทุกขั้น คุณจะได้หน้าจอคอลที่ใช้งานได้จริงบนมือถือสองเครื่อง เป็นฐานสำหรับต่อยอด เช่น นัดหมาย บันทึกการคอล หรือแชทระหว่างคอล

เราจะไม่ใช้ UIKit (หน้าจอสำเร็จรูป) ในคู่มือนี้ เพื่อให้เห็นว่าแต่ละส่วนทำงานอย่างไร ถ้าอยากได้หน้าจอพร้อมใช้ทันที ดูหัวข้อสุดท้าย

ต้องเตรียมอะไรก่อนเริ่ม?

  • Flutter 3.x พร้อม Android Studio สำหรับ Android หรือ Xcode สำหรับ iOS และรันแอปตัวอย่างบนเครื่องได้แล้ว

  • บัญชี Tencent RTC และ SDKAppID ขอบัญชีทดลองใช้ฟรีได้จาก ฟอร์มด้านล่าง ทีมจะส่งให้ภายใน 2 วันทำการ

  • มือถือจริง 2 เครื่อง ต่ออินเทอร์เน็ตได้ จะเป็น Wi-Fi หรือ 4G ก็ได้

  • ความรู้ Dart พื้นฐาน เช่น async/await และ StatefulWidget

ไม่ต้องมีความรู้ WebRTC หรือเซิร์ฟเวอร์วิดีโอ เพราะ TRTC จัดการการส่งภาพและเสียงให้ทั้งหมด

วิดีโอคอลบน TRTC ทำงานอย่างไร?

วิดีโอคอลบน TRTC มีสามส่วนที่ทำงานร่วมกัน ส่วนแรกคือแอปของคุณ ทำหน้าที่เปิดกล้อง ไมค์ และแสดงภาพ ส่วนที่สองคือเซิร์ฟเวอร์ของคุณ ทำหน้าที่เดียวคือสร้าง UserSig ให้ผู้ใช้ที่ล็อกอินแล้ว ส่วนที่สามคือ TRTC ซึ่งเป็นทางด่วนข้อมูลที่รับภาพและเสียงจากเครื่องหนึ่ง แล้วส่งต่อให้อีกเครื่องผ่านเครือข่ายของ Tencent

ข้อดีของการแบ่งแบบนี้คือคุณไม่ต้องดูแล Infrastructure (โครงสร้างระบบ) วิดีโอ ไม่ต้องรับมือกับเน็ตที่หลุดหรือช้าเอง และเซิร์ฟเวอร์ของคุณไม่ต้องรับภาระส่งวิดีโอเลย ช่วงทดสอบในคู่มือนี้ เราจะข้ามเซิร์ฟเวอร์ไปก่อนโดยคัดลอก UserSig จาก Console (หน้าจัดการบัญชี)

ลำดับเหตุการณ์ในหนึ่งคอลเป็นแบบนี้: ผู้ใช้ล็อกอินเข้าแอปตามปกติ แอปขอ UserSig จากเซิร์ฟเวอร์ของคุณ ผู้ใช้กดเริ่มคอล แอปขอสิทธิ์กล้องและไมค์ แล้วเรียก enterRoom พร้อม roomId ที่ตกลงกันไว้ เช่น เลขที่นัดหมาย เมื่ออีกฝ่ายเข้าห้องเดียวกัน TRTC จะแจ้งแอปผ่าน Listener (ตัวรับเหตุการณ์) แอปจึงเริ่มแสดงภาพของอีกฝ่าย เมื่อวางสาย แอปเรียก exitRoom และ TRTC หยุดนับนาที

เราแนะนำให้ใช้เลขที่นัดหมายเป็น roomId ซึ่งเป็นวิธีที่ทีมไทยนิยม เพราะไม่ต้องสร้างระบบจับคู่ห้องเพิ่ม และตรวจย้อนหลังได้ง่ายว่าคอลไหนเป็นของนัดไหน

ทำอย่างไรให้คอลแรกติดใน 6 ขั้น?

โค้ดทุกขั้นวางในไฟล์หน้าจอคอลไฟล์เดียวได้ เช่น call_page.dart

เริ่มจากเพิ่มแพ็กเกจ TRTC และแพ็กเกจจัดการสิทธิ์ลงในโปรเจกต์ Flutter ที่มีอยู่ ไม่ต้องสร้างโปรเจกต์ใหม่ เพิ่มสองบรรทัดใน pubspec.yaml แล้วรัน flutter pub get ฝั่ง iOS ให้เข้าโฟลเดอร์ ios แล้วรัน pod install ด้วย

ผลที่ควรเห็น: รัน flutter pub get แล้วไม่มี error และ import package:tencent_trtc_cloud/trtc_cloud.dart ได้

มือถือทุกเครื่องต้องได้รับอนุญาตจากผู้ใช้ก่อนเปิดกล้องและไมค์ ฝั่ง Android ประกาศสิทธิ์ใน AndroidManifest.xml ฝั่ง iOS ต้องใส่ข้อความอธิบายเป็นภาษาที่ผู้ใช้อ่านเข้าใจใน Info.plist จากนั้นขอสิทธิ์จริงในโค้ดก่อนเข้าห้อง

ผลที่ควรเห็น: กดเริ่มคอลครั้งแรกแล้วมีหน้าต่างถามสิทธิ์กล้องและไมค์ เป็นข้อความภาษาไทยที่คุณเขียนไว้

SDKAppID คือรหัสแอปของคุณบน Tencent RTC ส่วน UserSig ทำหน้าที่เหมือนบัตรผ่านเข้าห้องของผู้ใช้แต่ละคน ช่วงทดสอบคัดลอกทั้งสองค่าจาก Console ได้เลย พอขึ้น Production (ใช้งานจริง) ต้องย้ายการสร้าง UserSig ไปไว้บนเซิร์ฟเวอร์

ผลที่ควรเห็น: มีค่า SDKAppID และ UserSig ของผู้ใช้ทดสอบ 2 คน เช่น doctor_01 และ patient_01

ผู้ใช้ทุกคนที่ใช้ roomId เดียวกันจะอยู่ในคอลเดียวกัน ก่อนเข้าห้องให้ลงทะเบียน listener ไว้ เพื่อรู้ว่าเข้าห้องสำเร็จเมื่อไหร่และอีกฝ่ายเข้ามาเมื่อไหร่ จากนั้นเรียก enterRoom แล้วเปิดไมค์

ผลที่ควรเห็น: ใน log เห็นข้อความ "เข้าห้องแล้ว" จาก callback onEnterRoom ซึ่งส่งค่า result เป็นบวกเมื่อเข้าห้องสำเร็จ (คือเวลาที่ใช้เข้าห้องเป็นมิลลิวินาที) ถ้าได้ค่าติดลบคือรหัสข้อผิดพลาด

วางวิดีโอสองชั้นซ้อนกัน ภาพของอีกฝ่ายเต็มจอ ภาพของเราอยู่มุมล่างขวา เหมือนแอปวิดีโอคอลที่ผู้ใช้คุ้นเคย ภาพของอีกฝ่ายจะแสดงเมื่อ listener แจ้งว่ามีคนเข้าห้องแล้วเท่านั้น

ผลที่ควรเห็น: เห็นภาพตัวเองที่มุมจอทันที และเห็นภาพอีกฝ่ายเต็มจอเมื่อเขาเข้าห้อง

ขั้นนี้ทีมมักลืม และเป็นขั้นที่กระทบบิลโดยตรง เมื่อผู้ใช้วางสาย ต้องปิดกล้อง ปิดไมค์ และออกจากห้องให้ครบ ไม่อย่างนั้นกล้องยังเปิดค้างและนาทีใช้งานยังถูกนับ เมื่อปิดหน้าจอคอลให้คืนทรัพยากรของ SDK ด้วย

ผลที่ควรเห็น: กดวางสายแล้วไฟกล้องดับ และอีกฝ่ายเห็นว่าคุณออกจากห้องแล้ว

รู้ได้อย่างไรว่าคอลใช้งานได้จริง?

  1. ติดตั้งแอปบนเครื่องแรกด้วย userId doctor_01 และเครื่องที่สองด้วย patient_01 พร้อม UserSig ของแต่ละคน

  2. ใช้ roomId เดียวกัน เช่น 1234 แล้วกดเริ่มคอลทั้งสองเครื่อง

  3. ลองพูดและขยับกล้อง แล้วลองปิด Wi-Fi บนเครื่องหนึ่งให้เหลือแต่ 4G เพื่อดูว่าคอลยังไปต่อได้

  4. กดวางสายทั้งสองเครื่อง แล้วเช็กว่าไฟกล้องดับ

คอลไม่ติด จอดำ เสียงสะท้อน แก้อย่างไร?

อาการ

สาเหตุที่พบบ่อย

วิธีแก้

เข้าห้องไม่ได้

UserSig หมดอายุหรือไม่ตรงกับ userId

สร้าง UserSig ใหม่จาก Console ให้ตรงกับ userId

จอดำ

ยังไม่ได้สิทธิ์กล้อง

ตรวจขั้นที่ 2 และขอสิทธิ์ก่อนเข้าห้อง

ไม่เห็นอีกฝ่าย

roomId ไม่ตรงกัน หรือยังไม่ได้เรียก startRemoteView

ใช้ roomId เดียวกัน และตรวจ listener ในขั้นที่ 4

ได้ยินเสียงสะท้อน

ทดสอบสองเครื่องในห้องเดียวกันโดยเปิดลำโพง

ใส่หูฟัง หรือแยกห้องทดสอบ

build iOS ไม่ผ่าน

ยังไม่ได้รัน pod install หรือ iOS deployment target ต่ำเกินไป

รัน cd ios && pod install และตั้ง iOS deployment target ใน Podfile และ Xcode ให้ไม่ต่ำกว่าที่ Flutter เวอร์ชันที่ใช้และ SDK กำหนด (podspec ของ tencent_trtc_cloud ระบุขั้นต่ำ iOS 9.0)

กล้องเปิดค้างหลังวางสาย

ไม่ได้เรียก exitRoom หรือ dispose

ทำตามขั้นที่ 6

เคล็ดลับ: ระหว่างพัฒนาให้พิมพ์ทุกเหตุการณ์จาก listener ลง log ไว้ก่อน เมื่อเกิดปัญหาจะเห็นทันทีว่าคอลติดอยู่ที่ขั้นไหน เช่น เข้าห้องสำเร็จแต่ไม่มีเหตุการณ์อีกฝ่ายเข้ามา แปลว่า roomId หรือ sdkAppId ไม่ตรงกัน

ถ้ายังแก้ไม่ได้ ส่ง log จาก listener และรุ่นมือถือมาให้ทีมเรา วิศวกรไทยของเราติดต่อกลับภายใน 2 วันทำการ

ก่อนขึ้น Production ต้องทำอะไรต่อ?

  • สร้าง UserSig ฝั่งเซิร์ฟเวอร์ ขั้นที่สำคัญที่สุดก่อนขึ้นจริง คู่มือ UserSig

  • ใช้ UIKit แทนการทำหน้าจอเอง ได้ปุ่มสลับกล้อง ปิดไมค์ และหน้าจอรอสายพร้อมใช้: TRTC

  • เพิ่มแชทในคอลเดียวกัน ส่งข้อความและรูประหว่างคอล: Chat

  • ดูตัวอย่างการใช้งานจริง แอปปรึกษาแพทย์ที่เปิดวิดีโอคอลใน 3 สัปดาห์: อ่าน case study

Frontyr's take

สองจุดที่ผมให้ทีมเช็กก่อนขึ้นจริงเสมอ ข้อแรกคือ UserSig ที่สร้างในแอปเพื่อความเร็วตอนทดสอบ ต้องย้ายไปสร้างฝั่งเซิร์ฟเวอร์ก่อนเปิดใช้งาน ข้อสองคือต้องเรียก exitRoom ทุกครั้งที่วางสาย ไม่เช่นนั้นผู้ใช้ยังค้างอยู่ในห้อง นาทีใช้งานและบิลจะสูงกว่าที่คาด

Bank, CTO · Frontyr Digital

คำถามที่พบบ่อย

คำถามที่พบบ่อย

คำถามที่พบบ่อย

ใช้กับ React Native ได้ไหม?

ทดสอบบนตัวจำลองได้ไหม?

คอลกลุ่มต้องเปลี่ยนอะไร?

คิดค่าบริการอย่างไร?

อ้างอิง: เอกสาร TRTC Flutter SDK https://trtc.io/document/35098 · โค้ดตัวอย่าง https://github.com/Tencent-RTC/TRTC_Flutter · แพ็กเกจ tencent_trtc_cloud https://pub.dev/packages/tencent_trtc_cloud

ฟรีสูงสุด 28 วัน

อยากใส่วิดีโอคอลในแอปของคุณ?

อยากใส่วิดีโอคอลในแอปของคุณ?

อยากใส่วิดีโอคอลในแอปของคุณ?

อยากใส่วิดีโอคอลในแอปของคุณ?

ทดลองใช้ฟรีบนแอปของคุณสูงสุด 28 วัน วิศวกรไทยช่วยตั้งค่าและตอบคำถาม

ทดลองใช้ฟรีบนแอปของคุณสูงสุด 28 วัน วิศวกรไทยช่วยตั้งค่าและตอบคำถาม

วิศวกรหรือฝ่ายขายติดต่อกลับภายใน 2 วันทำการ · เราใช้ข้อมูลนี้เพื่อตอบคำถามของคุณเท่านั้น

บทความที่เกี่ยวข้อง

บทความที่เกี่ยวข้อง

บทความที่เกี่ยวข้อง

Video call

6 ทางเลือกแทน Agora ปี 2026: ตัวไหนคุมต้นทุนและซัพพอร์ตได้เมื่อแอปไทยโต

เทียบ 6 ทางเลือกแทน Agora ด้วยต้นทุนจริง ซัพพอร์ตไทย และงานย้ายระบบ พร้อมกรณีที่ควรอยู่ต่อ

Bank

·

·

อ่าน 12 นาที

Video call

6 ทางเลือกแทน Agora ปี 2026: ตัวไหนคุมต้นทุนและซัพพอร์ตได้เมื่อแอปไทยโต

เทียบ 6 ทางเลือกแทน Agora ด้วยต้นทุนจริง ซัพพอร์ตไทย และงานย้ายระบบ พร้อมกรณีที่ควรอยู่ต่อ

Bank

·

·

อ่าน 12 นาที

Video call

กรณีศึกษาจาก Tencent RTC: BeLive Technology ไลฟ์พร้อมกันบน 8 แพลตฟอร์ม และเข้าถึงผู้ชมกว่า 100 ล้านคน

กรณีศึกษาจาก Tencent RTC: BeLive ไลฟ์บน 8 แพลตฟอร์มพร้อมกันด้วย TRTC พร้อมบทเรียนที่ทีมไทยใช้ได้

Yoot

·

·

อ่าน 6 นาที

Video call

กรณีศึกษาจาก Tencent RTC: BeLive Technology ไลฟ์พร้อมกันบน 8 แพลตฟอร์ม และเข้าถึงผู้ชมกว่า 100 ล้านคน

กรณีศึกษาจาก Tencent RTC: BeLive ไลฟ์บน 8 แพลตฟอร์มพร้อมกันด้วย TRTC พร้อมบทเรียนที่ทีมไทยใช้ได้

Yoot

·

·

อ่าน 6 นาที

Video call

TRTC กับ PDPA และความปลอดภัย: 11 คำถามที่ทีม IT ต้องได้คำตอบก่อนอนุมัติ

11 คำถามเรื่องข้อมูล การเข้ารหัส ความยินยอม และใบรับรอง ส่งต่อให้ทีม IT ได้ทันที

Bank

·

·

อ่าน 9 นาที

Video call

TRTC กับ PDPA และความปลอดภัย: 11 คำถามที่ทีม IT ต้องได้คำตอบก่อนอนุมัติ

11 คำถามเรื่องข้อมูล การเข้ารหัส ความยินยอม และใบรับรอง ส่งต่อให้ทีม IT ได้ทันที

Bank

·

·

อ่าน 9 นาที