Shaka Player เป็นไลบรารี JavaScript แบบโอเพ่นซอร์สสำหรับสื่อแบบปรับเปลี่ยนได้ โดยจะเล่นรูปแบบสื่อที่ปรับเปลี่ยนได้ (เช่น DASH, HLS และ MSS) ในเบราว์เซอร์โดยไม่ต้องใช้ปลั๊กอินหรือ Flash Shaka Player จะใช้ส่วนขยาย MediaSource มาตรฐานเว็บแบบเปิดและส่วนขยายสื่อที่เข้ารหัสแทน
Shaka Player ยังรองรับการจัดเก็บออฟไลน์และการเล่นสื่อโดยใช้ IndexedDB เนื้อหาสามารถจัดเก็บไว้ในเบราว์เซอร์ใดก็ได้ การจัดเก็บใบอนุญาตขึ้นอยู่กับการรองรับเบราว์เซอร์
เป้าหมายหลักของเราคือการทำให้การสตรีมวิดีโอและเสียงที่ปรับบิตเรตได้ง่ายที่สุดโดยใช้เทคโนโลยีเบราว์เซอร์สมัยใหม่ เราพยายามทำให้ห้องสมุดมีความสว่าง เรียบง่าย และปราศจากการพึ่งพาจากบุคคลที่สาม ทุกสิ่งที่คุณต้องการในการสร้างและปรับใช้อยู่ในแหล่งที่มา
สำหรับรายละเอียดเกี่ยวกับสิ่งที่จะเกิดขึ้นต่อไป โปรดดูแผนงานการพัฒนาของเรา
สาขาที่ได้รับการดูแล
ดูmaintained-branches.mdสำหรับรายการ up-to-date ของสาขาที่บำรุงรักษาของ Shaka Player
เมทริกซ์การสนับสนุนแพลตฟอร์มและเบราว์เซอร์
เบราว์เซอร์ | หน้าต่าง | แม็ค | ลินุกซ์ | หุ่นยนต์ | iOS >=9 | iOS >= 17.1 | iPadOS >= 13 | ChromeOS | อื่น |
---|
โครเมียม¹ | ย | ย | ย | ย | พื้นเมือง | พื้นเมือง | พื้นเมือง | ย | - |
ไฟร์ฟอกซ์¹ | ย | ย | ย | ยังไม่ทดลอง⁵ | พื้นเมือง | พื้นเมือง | พื้นเมือง | - | - |
ขอบ1 | ย | - | - | - | - | - | - | - | - |
ขอบโครเมียม | ย | ย | ย | ยังไม่ทดลอง⁵ | พื้นเมือง | พื้นเมือง | พื้นเมือง | - | - |
เช่น | เอ็น | - | - | - | - | - | - | - | - |
ซาฟารี1 | - | ย | - | - | พื้นเมือง | ย | ย | - | - |
โอเปร่า¹ | ย | ย | ย | ยังไม่ทดลอง⁵ | พื้นเมือง | - | - | - | - |
Chromecast² | - | - | - | - | - | - | - | - | ย |
ไทเซนทีวี3 | - | - | - | - | - | - | - | - | ย |
เว็บโอเอส⁶ | - | - | - | - | - | - | - | - | ย |
ไฮเซนส์7 | - | - | - | - | - | - | - | - | ย |
เอกซ์บอกซ์วัน | - | - | - | - | - | - | - | - | ย |
เพลย์สเตชั่น47 | - | - | - | - | - | - | - | - | ย |
เพลย์สเตชัน57 | - | - | - | - | - | - | - | - | ย |
หมายเหตุ:
- ¹: บน macOS รองรับเฉพาะ Safari 9+ เท่านั้น บน iOS รองรับเฉพาะ iOS 9+ เท่านั้น เวอร์ชันเก่าจะถูกปฏิเสธ
- ²: มีการทดสอบเฟิร์มแวร์ Chromecast ที่เสถียรล่าสุด ทั้งผู้ส่งและผู้รับสามารถใช้งานได้กับ Shaka Player
- ³: รุ่น Tizen 2017 ได้รับการทดสอบและสนับสนุนโดยทีมงาน Shaka Player โมเดล Tizen 2016 ได้รับการสนับสนุนจากชุมชนและยังไม่ผ่านการทดสอบจากเรา
- ⁵: สิ่งเหล่านี้คาดว่าจะใช้งานได้ แต่ไม่ได้รับการทดสอบโดยทีมงาน Shaka Player
- ⁶: สิ่งเหล่านี้คาดว่าจะใช้งานได้ แต่ได้รับการสนับสนุนจากชุมชนและยังไม่ผ่านการทดสอบจากเรา
- การสนับสนุนอย่างเป็นทางการสำหรับ LG WebOS TV: #1330
- ⁷: สิ่งเหล่านี้คาดว่าจะใช้งานได้ แต่เราได้รับการสนับสนุนจากชุมชนและยังไม่ผ่านการทดสอบจากเรา
หมายเหตุสำหรับ iOS และ iPadOS:
- เรารองรับ iOS 9+ ผ่านทางเครื่องเล่น HLS ดั้งเดิมของ Apple เราจัดเตรียม API ระดับบนสุดไว้เหมือนกัน แต่เราเพิ่งตั้งค่าองค์ประกอบ
src
ของวิดีโอเป็นรายการ/สื่อ ดังนั้นเราจึงขึ้นอยู่กับเบราว์เซอร์ที่รองรับรายการ - เนื่องจากรองรับส่วนขยาย MediaSource ของ iPadOS 13
- เนื่องจากรองรับ iPadOS 17 และ iOS 17.1 ManagedMediaSource Extensions
เมทริกซ์การสนับสนุนรูปแบบ Manifest
รูปแบบ | วิดีโอออนดีมานด์ | สด | เหตุการณ์ | การบันทึกที่กำลังดำเนินการ |
---|
แดช | ย | ย | - | ย |
เอชแอลเอส | ย | ย | ย | - |
นางสาว | ย | - | - | - |
คุณยังสามารถสร้างปลั๊กอินตัวแยกวิเคราะห์รายการเพื่อรองรับรูปแบบรายการที่กำหนดเองได้
คุณสมบัติแดช
รองรับคุณสมบัติ DASH:
- VOD การถ่ายทอดสด และการบันทึกที่กำลังดำเนินการ (เนื้อหา VOD แบบไดนามิก)
- MPD@timeShiftBufferDepth สำหรับการค้นหาย้อนหลังในสตรีมแบบสด
- เนื้อหาหลายช่วงเวลา (คงที่และไดนามิก)
- องค์ประกอบ Xlink (actuate=onLoad เท่านั้น, แก้ไขเป็นศูนย์, เนื้อหาทางเลือก)
- ข้อมูลดัชนีกลุ่มทุกรูปแบบ: SegmentBase@indexRange, SegmentTimeline, SegmentTemplate@duration, SegmentTemplate@index, SegmentList
- Multi-codec/multi-container manifests (เราจะเจรจาการสนับสนุนกับเบราว์เซอร์และเลือกสิ่งที่ดีที่สุด)
- เนื้อหาที่เข้ารหัส (รวมถึงสคีมา ContentProtection แบบกำหนดเอง, PSSH ในรายการ)
- การหมุนกุญแจ
- แทร็กโหมดเคล็ดลับ
- เว็บ VTT และ TTML
- คำอธิบายภาพ CEA-608/708
- ตัวแปรหลายตัวแปลงสัญญาณ (บนแพลตฟอร์มที่รองรับ changeType)
- การต่อลูกโซ่ MPD
- อัพเดต MPD Patch สำหรับ SegmentTemplate ด้วย $หมายเลข$ , แบ่งกลุ่มไทม์ไลน์ด้วย $หมายเลข$ และ SegmentTimeline ด้วย $เวลา$
ไม่ รองรับฟีเจอร์ DASH:
- Xlink พร้อม actuate=onRequest
- รายการโดยไม่มีข้อมูลส่วนใดๆ: #1088
- ติดตามโหมดหลอกหลายโหมดด้วยความละเอียดเดียวกันที่อัตราเฟรมหรือบิตเรตที่แตกต่างกัน
- มาตราส่วนเวลามีขนาดใหญ่มากจนไม่สามารถแสดงการประทับเวลาเป็นจำนวนเต็มใน JavaScript (2^53): #1667
- การปรับเปลี่ยนองค์ประกอบด้วยแอตทริบิวต์ @schemeIdUri ผ่าน MPD Patch
- การยกเลิกการอ้างอิง Xlink ด้วย MPD Patch
คุณสมบัติ HLS
รองรับคุณสมบัติ HLS:
- ประเภท VOD การถ่ายทอดสด และกิจกรรม
- การสตรีมที่มีความล่าช้าต่ำพร้อมบางส่วน คำแนะนำในการโหลดล่วงหน้า การอัปเดตเดลต้า และการบล็อกการโหลดเพลย์ลิสต์ซ้ำ
- ความไม่ต่อเนื่อง
- รองรับ ISO-BMFF / MP4 / CMAF
- รองรับ MPEG-2 TS
- เว็บ VTT และ TTML
- คำอธิบายภาพ CEA-608/708
- เนื้อหาที่เข้ารหัสด้วย PlayReady และ Widevine
- เนื้อหาที่เข้ารหัสด้วย FairPlay (Safari บน macOS และ iOS 9+ เท่านั้น)
- รองรับ AES-128, AES-256 และ AES-256-CTR บนเบราว์เซอร์ที่รองรับ Web Crypto API
- รองรับ SAMPLE-AES และ SAMPLE-AES-CTR (ข้อมูลระบุตัวตน) บนเบราว์เซอร์ที่รองรับ ClearKey
- การหมุนกุญแจ
- Raw AAC, MP3, AC-3 และ EC-3 (ไม่มีคอนเทนเนอร์ MP4)
- เพลย์ลิสต์แบบ I-frame เท่านั้น (สำหรับการเล่นแบบหลอกและภาพขนาดย่อ)
- #EXT-X-IMAGE-STREAM-INF สำหรับภาพขนาดย่อ
- โฆษณาคั่นระหว่างหน้า
- การเปลี่ยนแปลงคอนเทนเนอร์ระหว่างการเล่น (เช่น: MP4 เป็น TS หรือ AAC เป็น TS)
ไม่ รองรับฟีเจอร์ HLS:
- แอตทริบิวต์ X-SNAP ในโฆษณาคั่นระหว่างหน้า
แท็ก HLS ที่รองรับ
สำหรับรายละเอียดเกี่ยวกับรูปแบบ HLS และความหมายของแท็กเหล่านี้ โปรดดู https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis
แท็กเพลย์ลิสต์หลายตัวแปร
-
#EXT-X-STREAM-INF:<attribute-list>
<URI>
-
#EXT-X-MEDIA:<attribute-list>
-
#EXT-X-IMAGE-STREAM-INF:<attribute-list>
-
#EXT-XI-FRAME-STREAM-INF:<attribute-list>
-
#EXT-X-SESSION-DATA:<attribute-list>
-
#EXT-X-SESSION-KEY:<attribute-list>
การเลือกระบบคีย์ EME และการโหลดล่วงหน้า -
#EXT-X-START:TIME-OFFSET=<n>
-
#EXT-X-CONTENT-STEERING:<attribute-list>
การบังคับทิศทางเนื้อหา -
#EXT-X-DEFINE:<attribute-list>
การทดแทนตัวแปร ( แอตทริบิวต์ NAME,VALUE,QUERYPARAM
)
แท็กเพลย์ลิสต์สื่อ
-
#EXTM3U
-
#EXTINF:<duration>,[<title>]
-
#EXT-X-PLAYLIST-TYPE:<type
-
#EXT-X-ENDLIST
-
#EXT-X-MEDIA-SEQUENCE=<n>
-
#EXT-X-TARGETDURATION=<n>
-
#EXT-X-DISCONTINUITY
-
#EXT-X-DISCONTINUITY-SEQUENCE=<n>
-
#EXT-X-BYTERANGE=<n>[@<o>]
-
#EXT-X-MAP:<attribute-list>
-
#EXT-X-KEY:<attribute-list>
( KEYFORMAT="identity",METHOD=SAMPLE-AES
รองรับเฉพาะส่วน MP4 เท่านั้น) -
#EXT-X-PROGRAM-DATE-TIME:<attribute-list>
-
#EXT-X-START:TIME-OFFSET=<n>
-
#EXT-X-SERVER-CONTROL:<attribute-list>
-
#EXT-X-PART-INF:PART-TARGET=<n>
-
#EXT-X-PART:<attribute-list>
-
#EXT-X-SKIP:<attribute-list>
เพลย์ลิสต์เดลต้า -
#EXT-X-DATERANGE:<attribute-list>
ข้อมูลเมตา -
#EXT-X-DEFINE:<attribute-list>
การนำเข้าตัวแปรและการทดแทน (แอตทริบิวต์ NAME,VALUE,IMPORT,QUERYPARAM
) -
#EXT-X-GAP
-
#EXT-X-PRELOAD-HINT:<attribute-list>
-
#EXT-X-BITRATE
รองรับ MPEG-5 Part2 LCEVC
รองรับเฉพาะเบราว์เซอร์ที่รองรับ Media Source Extensions SourceBuffer
รองรับการถอดรหัส MPEG-5 Part2 LCEVC (การถอดรหัสที่มาจาก lcevc_dec.js จะต้องรวมแยกต่างหาก)
เอกสารประกอบการบูรณาการ : docs
ข้อมูลเพิ่มเติมเกี่ยวกับ MPEG-5 ตอนที่ 2 LCEVC
คุณสมบัติของเอ็มเอสเอส
รองรับคุณสมบัติ MSS:
- วีโอดี
- AAC และ H.264
- เนื้อหาที่เข้ารหัส (PlayReady)
- TTML/DFXP
- รองรับเฉพาะกับ codem-isoboxer
ไม่ รองรับฟีเจอร์ MSS:
เมทริกซ์การสนับสนุน DRM
เบราว์เซอร์ | ไวด์ไวน์ | เล่นพร้อม | แฟร์เพลย์ | เคลียร์คีย์⁶ |
---|
โครเมียม¹ | ย | - | - | ย |
ไฟร์ฟอกซ์² | ย | - | - | ย |
ขอบ³ | - | ย | - | - |
ขอบโครเมียม | ย | ย | - | ย |
ซาฟารี | - | - | ย | - |
โอเปร่า | ย | - | - | ย |
โครมแคสต์ | ย | ย | - | ย |
ไทเซนทีวี | ย | ย | - | ย |
เว็บโอเอส⁷ | ยังไม่ทดลอง? | ยังไม่ทดลอง? | - | ยังไม่ทดลอง? |
ไฮเซนส์ 7 | ยังไม่ทดลอง? | ยังไม่ทดลอง? | - | ยังไม่ทดลอง? |
เอกซ์บอกซ์วัน | - | ย | - | - |
เพลย์สเตชัน47 | - | ยังไม่ทดลอง? | - | ยังไม่ทดลอง? |
เพลย์สเตชัน57 | - | ยังไม่ทดลอง? | - | ยังไม่ทดลอง? |
ระบบ DRM อื่นๆ ควรทำงานนอกกรอบหากสามารถทำงานร่วมกันได้และเป็นไปตามข้อกำหนด EME
หมายเหตุ:
- ¹: เฉพาะรุ่น Chrome อย่างเป็นทางการเท่านั้นที่มี Widevine CDM Chromium ที่สร้างจากแหล่งที่มาไม่รองรับ DRM
- ²: ผู้ใช้จะต้องเปิดใช้งาน DRM ครั้งแรกที่ผู้ใช้ Firefox เยี่ยมชมไซต์ที่มีสื่อที่เข้ารหัส ผู้ใช้จะได้รับแจ้งให้เปิดใช้งาน DRM
- ³: ดูเหมือนว่า PlayReady ใน Edge จะไม่ทำงานบน VM หรือบนเดสก์ท็อประยะไกล
- ⁶: ClearKey เป็นเครื่องมือที่มีประโยชน์สำหรับการดีบัก และไม่ได้ให้ความปลอดภัยของเนื้อหาที่แท้จริง
- ⁷: สิ่งเหล่านี้คาดว่าจะใช้งานได้ แต่เราได้รับการสนับสนุนจากชุมชนและยังไม่ผ่านการทดสอบจากเรา
ประจักษ์ | ไวด์ไวน์ | เล่นพร้อม | แฟร์เพลย์ | เคลียร์คีย์ |
---|
แดช | ย | ย | - | ย |
เอชแอลเอส | ย | ย | ใช่ ¹ | - |
นางสาว | - | ย | - | - |
หมายเหตุ:
- ¹: ตามค่าเริ่มต้น FairPlay จะได้รับการจัดการโดยใช้เครื่องเล่น HLS ดั้งเดิมของ Apple เมื่ออยู่บน Safari อย่างไรก็ตาม เรารองรับ FairPlay ผ่าน MSE/EME ดูค่าการกำหนดค่า
streaming.useNativeHlsForFairPlay
.useNativeHlsForFairPlay
รองรับคอนเทนเนอร์สื่อและคำบรรยาย
Shaka Player รองรับ:
- ISO-BMFF / CMAF / MP4
- ขึ้นอยู่กับการรองรับเบราว์เซอร์สำหรับคอนเทนเนอร์ผ่าน MediaSource
- สามารถแยกวิเคราะห์กล่อง "sidx" สำหรับ SegmentBase@indexRange ของ DASH และ SegmentTemplate@index
- ค้นหาและแยกวิเคราะห์ช่อง "tfdt" เพื่อค้นหาเวลาเริ่มต้นของกลุ่มใน HLS
- สำหรับ MSS จำเป็นต้องมี codem-isoboxer v0.3.7+
- เว็บเอ็ม
- ขึ้นอยู่กับการรองรับเบราว์เซอร์สำหรับคอนเทนเนอร์ผ่าน MediaSource
- สามารถแยกวิเคราะห์องค์ประกอบข้อมูลคิวสำหรับ SegmentBase@indexRange และ SegmentTemplate@index ของ DASH
- ไม่รองรับ HLS
- MPEG-2 TS
- สามารถเล่นบนเบราว์เซอร์ใดก็ได้ที่รองรับ MP4
- ค้นหาและแยกวิเคราะห์การประทับเวลาเพื่อค้นหาเวลาเริ่มต้นของกลุ่มใน HLS
- WebVTT
- รองรับทั้งในรูปแบบข้อความและแบบฝังในรูปแบบ MP4
- ทีทีเอ็มแอล
- รองรับทั้งในรูปแบบ XML และแบบฝังในรูปแบบ MP4
- CEA-608
- รองรับการฝังใน MP4 และ TS
- CEA-708
- รองรับการฝังใน MP4 และ TS
- AAC ดิบ
- รองรับในคอนเทนเนอร์ AAC แบบ Raw และแปลงเป็น AAC ในคอนเทนเนอร์ MP4 (ขึ้นอยู่กับการรองรับเบราว์เซอร์ผ่าน MediaSource)
- MP3 ดิบ
- รองรับในคอนเทนเนอร์ MP3 แบบ Raw และแปลงเป็น MP3 ในคอนเทนเนอร์ MP4 (ขึ้นอยู่กับการรองรับเบราว์เซอร์ผ่าน MediaSource)
- ดิบ AC-3
- รองรับในคอนเทนเนอร์ AC-3 แบบ Raw และแปลงเป็น AC-3 ในคอนเทนเนอร์ MP4 (ขึ้นอยู่กับการรองรับเบราว์เซอร์ผ่าน MediaSource)
- ดิบ EC-3
- รองรับในคอนเทนเนอร์ EC-3 แบบ Raw และแปลงเป็น EC-3 ในคอนเทนเนอร์ MP4 (ขึ้นอยู่กับการรองรับเบราว์เซอร์ผ่าน MediaSource)
- ซับริป (รฟท.)
- การเข้ารหัส UTF-8 เท่านั้น
- LyRiCs (LRC)
- การเข้ารหัส UTF-8 เท่านั้น
- สถานีย่อยอัลฟ่า (SSA, ASS)
- การเข้ารหัส UTF-8 เท่านั้น
- โปรแกรมดูย่อย (SBV)
- การเข้ารหัส UTF-8 เท่านั้น
คำบรรยายจะถูกแสดงโดยเบราว์เซอร์ตามค่าเริ่มต้น แอปพลิเคชันสามารถสร้างปลั๊กอินแสดงข้อความสำหรับการเรนเดอร์ของลูกค้าให้เหนือกว่าแอตทริบิวต์ที่เบราว์เซอร์รองรับ
รองรับทรานส์มิวเซอร์
Shaka Player รองรับ:
- Raw AAC เป็น AAC ในรูปแบบ MP4
- Raw MP3 เป็น MP3 ใน MP4
- Raw AC-3 ถึง AC-3 ใน MP4
- Raw EC-3 ถึง EC-3 ในรูปแบบ MP4
- AAC ใน MPEG-2 TS ถึง AAC ใน MP4
- AC-3 ใน MPEG-2 TS ถึง AC-3 ใน MP4
- EC-3 ใน MPEG-2 TS ถึง EC-3 ใน MP4
- MP3 ใน MPEG-2 TS เป็น MP3 ใน MP4
- MP3 ใน MPEG-2 TS เป็น MP3 แบบดิบ
- บทประพันธ์ใน MPEG-2 TS เป็น MP3 ใน MP4
- H.264 ใน MPEG-2 TS ถึง H.264 ใน MP4
- H.265 ใน MPEG-2 TS ถึง H.265 ใน MP4
- รวมเนื้อหาใน MPEG-2 TS ด้วยตัวแปลงสัญญาณก่อนหน้า
การสนับสนุนภาพขนาดย่อ
Shaka Player รองรับ:
- ภาพขนาดย่อ DASH ภายใน การใช้ชุดการปรับภาพ DASH-IF IOP
- ภาพขนาดย่อ HLS ภายใน การใช้เพลย์ลิสต์สื่อรูปภาพ HLS
- ภาพขนาดย่อ HLS ภายใน การใช้เพลย์ลิสต์เฉพาะ I-frame พร้อมตัวแปลงสัญญาณ mjpg
- WebVTT ภายนอกพร้อมรูปภาพ/สไปรต์ (สำหรับ VoD เท่านั้น)
การสร้างรายได้ด้วยโฆษณา
Shaka Player รองรับ:
- IMA SDK สำหรับการแทรกโฆษณาฝั่งไคลเอ็นต์
- IMA DAI SDK สำหรับการแทรกโฆษณาฝั่งเซิร์ฟเวอร์
- AWS MediaTailor สำหรับฝั่งไคลเอ็นต์
- AWS MediaTailor สำหรับฝั่งเซิร์ฟเวอร์
- การซ้อนทับ AWS MediaTailor
- โฆษณาคั่นระหว่างหน้า HLS
- การแทรกการนำเสนอสื่อ DASH (ทางเลือก MPD)
- โฆษณาคั่นระหว่างหน้าที่กำหนดเอง
- การสนับสนุนพื้นฐานของ VAST และ VMAP ที่ไม่มี IMA (การเล่นโดยไม่มีการติดตาม)
รองรับการบังคับควบคุมเนื้อหา
Shaka Player รองรับ Content Steering (v1) ใน DASH และ HLS
รองรับคุณสมบัติการควบคุมเนื้อหา:
- TTL หากไม่มี ค่าเริ่มต้นคือ 300 วินาที
- RELOAD-URI หากไม่มี เราจะใช้ URL ที่ให้ไว้ในไฟล์ Manifest เป็นทางเลือก
- PATHWAY-PRIORITY การเปลี่ยนโฮสต์เท่านั้น
ไม่ รองรับคุณสมบัติการควบคุมเนื้อหา:
- PATHWAY-CLONES สิ่งทดแทนอื่นๆ นอกเหนือจาก HOST
รองรับวีอาร์
Shaka Player รองรับ VR เมื่อ:
- เนื้อหาจะถือเป็น VR โดยอัตโนมัติหากตรงตามเกณฑ์ต่อไปนี้:
- รายการ HLS หรือ DASH
- ส่วน fMP4
- ส่วนเริ่มต้นประกอบด้วยกล่อง
prji
และ hfov
- หรือหากเปิดใช้งานด้วยตนเองผ่านการกำหนดค่า UI
รองรับโหมด VR:
- การฉายภาพแบบ Equirectangle พร้อมมุมมองแนวนอน 360 องศา
- การฉายภาพ Cubemap พร้อมมุมมองแนวนอน 360 องศา
หมายเหตุ:
- VR รองรับเฉพาะสตรีมที่ชัดเจนหรือสตรีม HLS-AES DRM ป้องกันการเข้าถึงพิกเซลวิดีโอสำหรับการแปลง
เอกสารและลิงค์สำคัญ
- การสาธิต(แหล่งที่มา)
- การสาธิตทุกคืน
- ดัชนีสาธิต
- เอกสารประกอบ API
- บทช่วยสอน
- โครงสร้างที่โฮสต์บน Google Hosted Libraries
- โฮสต์บิลด์บน jsDelivr
- แผนงานการพัฒนา
- รายการประกาศ (เข้าร่วมประกาศและแบบสำรวจไม่บ่อยนัก)
- สมัครสมาชิกเพื่อเผยแพร่โดยทำตามคำแนะนำจากบล็อกนี้
คำถามที่พบบ่อย
สำหรับความช่วยเหลือทั่วไปและก่อนที่จะแจ้งข้อบกพร่องใด ๆ โปรดอ่านคำถามที่พบบ่อย
มีส่วนร่วม
หากคุณมีการปรับปรุงหรือแก้ไข เรายินดีรับฟังความคิดเห็นของคุณ โปรดอ่าน CONTRIBUTING.md เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการที่เราต้องการให้ผู้ร่วมให้ข้อมูลปฏิบัติตาม
การรวมกรอบงาน
ทีมงาน Shaka ไม่มีแบนด์วิดท์และประสบการณ์ในการให้คำแนะนำและการสนับสนุนในการบูรณาการ Shaka Player เข้ากับเฟรมเวิร์กเฉพาะ แต่ผู้ใช้ของเราบางคนประสบความสำเร็จในการทำเช่นนั้น และสร้างบทช่วยสอนเพื่อช่วยผู้เริ่มต้นคนอื่นๆ
ไลบรารี Shaka + ReactJS
- https://github.com/winoffrg/limeplay
การรวม Shaka + ReactJS:
- https://github.com/matvp91/shaka-player-react
- https://github.com/amit08255/shaka-player-react-with-ui-config
การรวม Shaka + Next.js:
- https://github.com/amit08255/shaka-player-react-with-ui-config/tree/master/nextjs-shaka-player
การรวม Shaka + Vue.js:
- https://github.com/davidjamesherzog/shaka-player-vuejs
การรวม Shaka + Nuxt.js:
- https://github.com/davidjamesherzog/shaka-player-nuxtjs
การรวม Shaka + video.js:
- https://github.com/davidjamesherzog/videojs-shaka
การรวม Shaka + เชิงมุม:
- https://github.com/PatrickKalkman/shaka-player- Angular
หากคุณเผยแพร่โค้ด/บทช่วยสอน Shaka Integration โปรดส่ง PR เพื่อเพิ่มลงในรายการนี้ได้เลย เรายินดีอนุมัติ!