สื่อและการสตรีมในการพัฒนามือถือ: คืออะไร โปรโตคอลใดบ้าง และทำงานอย่างไร

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-05-20 เวลาอ่าน: 10 นาที

สื่อและการสตรีมเป็นหนึ่งในความสามารถหลักของการพัฒนามือถือสมัยใหม่ ตามข้อมูลของ Statista (2025) ตลาดวิดีโอสตรีมมิ่งทั่วโลกจะเกิน 1 แสนล้านดอลลาร์ภายในปี 2027 อุปกรณ์มือถือ คิดเป็นสัดส่วนมากกว่า 60% ของการรับส่งข้อมูลทั้งหมดของแพลตฟอร์มสตรีมมิ่ง นักพัฒนาจำเป็นต้องเข้าใจโปรโตคอล เครื่องเล่น กลไกการป้องกันเนื้อหา และฟีเจอร์อย่าง Picture-in-Picture การสตรีมคุณภาพสูงในแอปพลิเคชันมือถือต้องอาศัยความชำนาญในเทคโนโลยีทั้งหมดนี้

ประเด็นสำคัญ

  • โปรโตคอลสตรีมมิ่งหลัก — HLS (Apple) และ DASH (MPEG) HLS เหมาะสำหรับ iOS, DASH สำหรับ Android และโซลูชันข้ามแพลตฟอร์ม
  • ExoPlayer (Android) และ AVPlayer (iOS) เป็นเครื่องเล่นมาตรฐาน ExoPlayer ยืดหยุ่นกว่า, AVPlayer รวมเข้ากับระบบได้ง่ายกว่า สำหรับการพัฒนาข้ามแพลตฟอร์มมี Google Cast SDK
  • ระบบ DRM (Widevine, FairPlay, PlayReady) ปกป้องเนื้อหาระดับพรีเมียม Widevine เป็นมาตรฐานสำหรับ Android, FairPlay สำหรับ iOS, PlayReady สำหรับ Windows/Xbox
  • Audio Focus (Android) และ Audio Session (iOS) จัดการการเล่นเสียงระหว่างการโทรและการแจ้งเตือน หากไม่มีสิ่งเหล่านี้ ประสบการณ์ผู้ใช้ จะไม่สมบูรณ์
  • Picture-in-Picture และ AirPlay เป็นฟีเจอร์ที่จำเป็นสำหรับแอปวิดีโอระดับพรีเมียม PiP ช่วยให้ดูวิดีโอในหน้าต่างขนาดเล็กเมื่อย่อแอป

โปรโตคอล HLS และ DASH

HTTP Live Streaming (HLS) เป็นโปรโตคอลสำหรับสตรีมมิ่งในแอปพลิเคชันมือถือที่พัฒนาโดย Apple โดยแบ่งวิดีโอเป็นส่วนย่อย (ปกติ 6–10 วินาที) และส่งผ่าน HTTP ทั่วไป เครื่องเล่นดาวน์โหลดเพลย์ลิสต์ (.m3u8) และโหลดส่วนต่างๆ ตามลำดับ ปรับคุณภาพตามความเร็วการเชื่อมต่อ HLS ให้การสตรีมมิ่งที่เชื่อถือได้ในแอปพลิเคชันมือถือบนอุปกรณ์ Apple ทั้งหมดและเป็นมาตรฐานโดยพฤตินัยสำหรับ iOS

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP) เป็นมาตรฐาน MPEG แบบเปิดสำหรับการส่งมอบสื่อไปยังแอปพลิเคชันมือถือ ต่างจาก HLS ตรงที่ DASH ใช้รูปแบบ MP4 สำหรับส่วนต่างๆ และใช้ XML manifest (MPD) แทน .m3u8 DASH ให้การควบคุมโคเดกมากกว่าและรองรับรูปแบบมากขึ้น การเลือกระหว่าง HLS และ DASH เป็นการตัดสินใจสำคัญเมื่อพัฒนาสตรีมมิ่งสำหรับอุปกรณ์มือถือ การเปรียบเทียบโปรโตคอลแสดงในตารางด้านล่าง

พารามิเตอร์ HLS DASH
ผู้พัฒนาAppleMPEG (มาตรฐานเปิด)
รูปแบบเพลย์ลิสต์.m3u8.mpd (XML)
ส่วน.ts หรือ fMP4fMP4 (โคเดกใดก็ได้)
การรองรับดั้งเดิมiOS, macOS, tvOSAndroid, เว็บ
บิตเรตแบบปรับได้ใช่ (avc1, mp4a)ใช่ (โคเดกใดก็ได้)
หน่วงเวลาต่ำLL-HLS (2–5 วินาที)LL-DASH (2–5 วินาที)

ในทางปฏิบัติ แอป iOS เลือก HLS — AVPlayer ทำงานร่วมกับมันได้โดยตรง สำหรับ Android, DASH เป็นที่นิยมกว่าด้วย ExoPlayer โปรโตคอลทั้งสองเหมาะสำหรับการสตรีมสื่อบนอุปกรณ์มือถือ ที่ IT Sectr เราใช้ทั้งสองเทคโนโลยีและแนะนำให้เลือกโปรโตคอลตามแพลตฟอร์มเป้าหมาย

บิตเรตแบบปรับได้และโคเดก

Adaptive Bitrate (ABR) เป็นกลไกที่เครื่องเล่นเลือกคุณภาพวิดีโอโดยอัตโนมัติตามความเร็วการเชื่อมต่อ สตรีมถูกเข้ารหัสที่หลายบิตเรต (360p, 720p, 1080p, 4K) เครื่องเล่นสลับระหว่างบิตเรตเหล่านี้โดยไม่หยุดชะงัก โคเดก: H.264 (AVC) — พื้นฐาน, H.265 (HEVC) — มีประสิทธิภาพมากกว่า 50%, VP9 และ AV1 — ทางเลือกแบบเปิดสำหรับ Android

สำหรับการถอดรหัสฮาร์ดแวร์ในแอปพลิเคชันมือถือ การเลือกโคเดกที่ถูกต้องเป็นสิ่งสำคัญ Hardware Decoding ใช้ GPU/ตัวประมวลผลวิดีโอของอุปกรณ์และใช้แบตเตอรี่น้อยกว่า Software Decoding ทำงานบน CPU — ใช้เมื่อการถอดรหัสฮาร์ดแวร์ไม่พร้อมใช้งาน IT Sectr แนะนำให้ตรวจสอบการรองรับโคเดกผ่าน MediaCodec (Android) หรือ AVAssetTrack (iOS) เสมอเพื่อการเล่นสื่อที่เหมาะสมที่สุดบนอุปกรณ์มือถือ

เครื่องเล่น: ExoPlayer และ AVPlayer

ExoPlayer เป็นเครื่องเล่นสื่อจาก Google สำหรับ Android ที่ปรับให้เหมาะสมสำหรับการเล่นสื่อในแอปพลิเคชันมือถือ ต่างจาก MediaPlayer ตรงที่ ExoPlayer ไม่ผูกติดกับการถอดรหัสฮาร์ดแวร์และรองรับสคีมาแบบกำหนดเองผ่านโมดูลส่วนขยาย มันทำงานกับ HLS, DASH, SmoothStreaming และ RTSP ExoPlayer เป็นเครื่องเล่นหลักสำหรับ YouTube, Google TV และ Android TV

ExoPlayer vs AVPlayerViewController

AVPlayer และ AVPlayerViewController เป็นเครื่องเล่นของ Apple สำหรับ iOS, macOS, tvOS AVPlayer เป็น API ระดับต่ำ, AVPlayerViewController เป็น wrapper UI สำเร็จรูปพร้อม PiP และ AirPlay ความแตกต่างหลัก: ExoPlayer ให้การควบคุมการบัฟเฟอร์และการเรนเดอร์อย่างเต็มที่, AVPlayerViewController ให้การรวมระบบที่รวดเร็วด้วยโค้ดน้อยที่สุด การเลือกเครื่องเล่นส่งผลโดยตรงต่อคุณภาพการสตรีมในแอปพลิเคชันมือถือ

kotlin
// ExoPlayer — การตั้งค่าเครื่องเล่นพื้นฐานบน Android
val player = ExoPlayer.Builder(this)
    .setMediaSource(ProgressiveMediaSource.Factory(DefaultHttpDataSource.Factory()))
    .build()
val mediaItem = MediaItem.fromUri("https://example.com/stream.m3u8")
player.setMediaItem(mediaItem)
player.prepare()
player.playWhenReady = true

โค้ดแสดงการเริ่มต้น ExoPlayer ขั้นต่ำ: สร้างอินสแตนซ์ ตั้งค่ารายการสื่อ และเริ่มเล่น ExoPlayer จัดการวงจรชีวิตของ Activity โดยอัตโนมัติผ่าน player.release() ใน onStop สำหรับ Android TV หรือ PiP จำเป็นต้องมีการจัดการวงจรชีวิตเพิ่มเติมผ่าน PlayerView — ซึ่งสำคัญเป็นพิเศษเมื่อตั้งค่าสตรีมมิ่งสำหรับแอปพลิเคชันมือถือ

ทรานส์โค้ดดิ้งและการประมวลผลวิดีโอ

Transcoding คือการแปลงวิดีโอจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่ง ใช้เพื่อปรับสตรีมสื่อให้เหมาะสมสำหรับอุปกรณ์มือถือต่างๆ (เช่น H.264 → H.265) บนอุปกรณ์มือถือ สามารถทรานส์โค้ดได้ผ่าน MediaCodec (Android) หรือ AVAssetExportSession (iOS) ทรานส์โค้ดดิ้งใช้ทรัพยากรมากและทำให้แบตเตอรี่หมด — ให้ทำในพื้นหลังผ่าน WorkManager หรือ BGTaskScheduler

DRM: Widevine, FairPlay และ PlayReady

Digital Rights Management (DRM) คือระบบป้องกันเนื้อหาสื่อจากการคัดลอกโดยไม่ได้รับอนุญาต สำหรับการสตรีมสื่อระดับพรีเมียมในแอปพลิเคชันมือถือ มีสามเทคโนโลยีหลักที่ใช้: Widevine (Google), FairPlay (Apple) และ PlayReady (Microsoft) หากไม่มี DRM บริการระดับพรีเมียม (Netflix, Spotify, Disney+) จะไม่สามารถเผยแพร่เนื้อหาได้

การเปรียบเทียบระบบ DRM

Widevine เป็นมาตรฐานการป้องกัน DRM สำหรับ Android มีสามระดับ: L3 (การเข้ารหัสซอฟต์แวร์), L2, L1 (การเข้ารหัสฮาร์ดแวร์, เฉพาะ Trusted Execution Environment) FairPlay เป็นระบบเฉพาะของ Apple ใช้ SVP (Secure Video Pipeline) ที่ระดับชิป PlayReady เป็นระบบของ Microsoft แพร่หลายบนอุปกรณ์ Xbox และ Windows

Multi-DRM เป็นแนวทางที่คุณใช้แพลตฟอร์มเดียวในการจัดการคีย์ DRM ทั้งหมด ตัวอย่าง: EZDRM หรือ Verimatrix พวกเขาออกใบอนุญาต Widevine, FairPlay และ PlayReady ผ่าน API แบบรวม Multi-DRM มีความเกี่ยวข้องเป็นพิเศษสำหรับสื่อระดับพรีเมียมบนอุปกรณ์มือถือ ที่ IT Sectr เราดำเนินการ multi-DRM ผ่านตัวรวบรวม — ซึ่งประหยัดเวลาและเงินเมื่อเทียบกับการรวม DRM แต่ละตัวแยกกัน

การเล่นเสียง: Audio Focus และ Audio Session

Audio Focus (Android) เป็นระบบจัดการสตรีมเสียงสำหรับการเล่นสื่อในแอปพลิเคชันมือถือ เมื่อแอปของคุณขอ Audio Focus แอปอื่น (เพลง, พอดแคสต์) จะหยุดชั่วคราวหรือลดระดับเสียง (ducking) หากไม่มี Audio Focus สองแอปจะเล่นพร้อมกันทำให้เกิดเสียงรบกวน

Audio Focus บน Android

Android แบ่งสตรีมเสียงเป็นประเภท: MUSIC, VOICE_CALL, ALARM, NOTIFICATION สำหรับเครื่องเล่นสื่อ คุณต้องขอ AudioManager.AUDIOFOCUS_GAIN เมื่อเสียโฟกัส (สายเรียกเข้า) คุณต้องหยุดการเล่นสื่อชั่วคราวและเริ่มใหม่เมื่อโฟกัสกลับมา การดำเนินการผ่าน AudioManager.OnAudioFocusChangeListener

Audio Session บน iOS

Audio Session (iOS) เทียบเท่ากับ Audio Focus สำหรับแอปสื่อบนอุปกรณ์มือถือ Apple กำหนดค่าผ่าน AVAudioSession.sharedInstance() หมวดหมู่: .playback (จำเป็นสำหรับวิดีโอ), .soloAmbient (ค่าเริ่มต้น, เงียบเมื่อล็อก), .playAndRecord (สำหรับบันทึก) สำหรับสตรีมมิ่ง ให้ใช้ .playback พร้อมตัวเลือก .allowAirPlay

PiP และ AirPlay

Picture-in-Picture (PiP) เป็นโหมดที่เนื้อหาสื่อยังคงเล่นในหน้าต่างลอยขนาดเล็กเมื่อย่อแอปหรือนำทางไปยังหน้าจออื่น PiP กลายเป็นมาตรฐานสำหรับแอปสื่อบนอุปกรณ์มือถือ — iOS (ตั้งแต่ iPadOS 13) และ Android (ตั้งแต่ Android 8.0)

PiP บน Android

บน Android, PiP เปิดใช้งานผ่าน Activity.isInPictureInPictureMode() และ PictureInPictureParams.Builder แอปต้องอยู่ในโหมดหลายหน้าต่าง ต้องใช้ MediaSession เพื่อควบคุมการเล่นสื่อจากหน้าต่าง PiP ใน manifest ให้ระบุ android:supportsPictureInPicture="true"

AirPlay และ Chromecast

AirPlay เป็นโปรโตคอลของ Apple สำหรับสตรีมสื่อไปยัง Apple TV, HomePod และสมาร์ททีวีที่รองรับ บน iOS ใช้งานผ่าน AVRoutePickerView หรือ MPNowPlayingInfoCenter บน Android เทียบเท่ากับ Google Cast SDK (Chromecast) ทั้งสองเทคโนโลยีต้องการการกำหนดค่าในไฟล์ไบนารีและการรองรับในเครื่องเล่น การสตรีมคุณภาพสูงในแอปพลิเคชันมือถือเป็นไปไม่ได้หากไม่มีสิ่งเหล่านี้

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

อะไรดีกว่าสำหรับแอปมือถือ: HLS หรือ DASH?

สำหรับ iOS HLS ดีกว่า — รองรับโดยตรงโดย AVPlayer สำหรับ Android และแอปข้ามแพลตฟอร์ม DASH เหมาะสมกว่า เนื่องจาก ExoPlayer รองรับ DASH ได้ดีกว่าและควบคุมบัฟเฟอร์ได้ยืดหยุ่นกว่า การเลือกโปรโตคอลส่งผลโดยตรงต่อการสตรีมในแอปพลิเคชันมือถือ

จำเป็นต้องใช้ DRM ในแอปสตรีมมิ่งหรือไม่?

DRM จำเป็น เฉพาะเมื่อคุณเผยแพร่เนื้อหาสื่อระดับพรีเมียม (ภาพยนตร์, เพลง, หลักสูตร) สำหรับเนื้อหาที่ผู้ใช้สร้างขึ้นหรือรายการฟรี ไม่จำเป็นต้องใช้ DRM IT Sectr แนะนำให้เริ่มต้นโดยไม่ใช้ DRM และเพิ่มเมื่อจำเป็นเท่านั้น

อะไรคือความแตกต่างระหว่าง ExoPlayer และ AVPlayerViewController?

ExoPlayer เป็นเครื่องเล่นสื่อที่ปรับแต่งได้สำหรับ Android รองรับ DASH, HLS และ SmoothStreaming AVPlayerViewController เป็นเครื่องเล่นดั้งเดิมของ iOS สำหรับ HLS พร้อม PiP และ AirPlay ExoPlayer ให้การควบคุมมากกว่า, AVPlayerViewController ต้องใช้โค้ดน้อยกว่า ทั้งสองให้การเล่นสื่อคุณภาพสูงในแอปพลิเคชันมือถือ

Picture-in-Picture (PiP) คืออะไรและจะดำเนินการอย่างไร?

PiP เป็นโหมดที่เนื้อหาสื่อยังคงเล่นในหน้าต่างเล็กเมื่อย่อแอป บน iOS เปิดใช้งานผ่าน delegate ของ AVPlayerViewController, บน Android ผ่าน PictureInPictureParams ต้องการการกำหนดค่า manifest และการจัดการวงจรชีวิต

ทำไมต้องใช้ Audio Focus และ Audio Session?

Audio Focus (Android) และ Audio Session (iOS) จัดการการเล่นเสียงพร้อมกันจากแหล่งต่างๆ พวกเขาทำให้แน่ใจว่าแอปสื่อของคุณตอบสนองต่อการโทร การแจ้งเตือน และการเปิดแอปเสียงอื่นๆ อย่างถูกต้อง

สรุป

  • HLS เป็นมาตรฐานสำหรับ iOS, DASH สำหรับ Android การเลือกโปรโตคอลขึ้นอยู่กับแพลตฟอร์มเป้าหมายและข้อกำหนดหน่วงเวลาต่ำ
  • ExoPlayer ให้การควบคุมการเล่นสื่อบน Android อย่างเต็มที่ AVPlayerViewController ให้การรวมระบบที่รวดเร็วบน iOS
  • DRM (Widevine, FairPlay, PlayReady) ปกป้องเนื้อหาสื่อระดับพรีเมียมจากการละเมิดลิขสิทธิ์ Multi-DRM เป็นแนวทางมาตรฐานสำหรับบริการระดับพรีเมียม
  • Audio Focus (Android) และ Audio Session (iOS) จัดการบริบทเสียงของแอป จำเป็นสำหรับแอปมือถือที่มีการเล่นสื่อ
  • Picture-in-Picture และ AirPlay เป็นฟีเจอร์สำคัญสำหรับแอปสื่อสมัยใหม่ การดำเนินการต้องการการกำหนดค่าวงจรชีวิตและเครื่องเล่น
  • Adaptive Bitrate (ABR) ปรับคุณภาพวิดีโอตามความเร็วการเชื่อมต่อบนอุปกรณ์มือถือโดยอัตโนมัติ ใช้งานพื้นหลังสำหรับทรานส์โค้ดดิ้ง
  • Hardware Decoding ประหยัดแบตเตอรี่ของอุปกรณ์มือถือ ตรวจสอบการรองรับโคเดกผ่าน API ของระบบก่อนเริ่มเล่นเสมอ

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ