From bca60d6b73ba4830b20388bee5c3608bf98d9fdb Mon Sep 17 00:00:00 2001 From: qydysky <32743305+qydysky@users.noreply.github.com> Date: Mon, 22 Aug 2022 01:40:11 +0800 Subject: [PATCH] =?utf8?q?=E9=87=8D=E6=96=B0=E6=94=AF=E6=8C=81flv=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- F/api.go | 13 + README.md | 13 +- Reply/F.go | 48 ++-- Reply/flvDecode.go | 65 ++++- Reply/stream.go | 171 ++++++++++++- demo/config/config_K_v.json | 2 +- demo/go.mod | 2 +- demo/go.sum | 4 + demo/html/artPlayer/bundle.js | 3 +- demo/html/artPlayer/bundle.js.LICENSE.txt | 283 ++++++++++++++++++++++ demo/html/artPlayer/bundle.js.map | 1 + go.mod | 2 +- go.sum | 60 +++++ 13 files changed, 616 insertions(+), 51 deletions(-) create mode 100644 demo/html/artPlayer/bundle.js.LICENSE.txt create mode 100644 demo/html/artPlayer/bundle.js.map diff --git a/F/api.go b/F/api.go index 5d60ede..14e09dd 100644 --- a/F/api.go +++ b/F/api.go @@ -571,6 +571,8 @@ func (c *GetFunc) getRoomPlayInfo() (missKey []string) { Format_name string Codec_name string } + + //所有支持的格式 var name_map = map[string]Stream_name{ `flv`: { Protocol_name: "http_stream", @@ -584,7 +586,10 @@ func (c *GetFunc) getRoomPlayInfo() (missKey []string) { }, } + // 默认使用hls want_type := name_map[`hls`] + + //从配置文件选取格式 if v, ok := c.K_v.LoadV(`直播流类型`).(string); ok { if v, ok := name_map[v]; ok { want_type = v @@ -594,19 +599,24 @@ func (c *GetFunc) getRoomPlayInfo() (missKey []string) { } else { apilog.L(`T: `, `默认hls`) } + no_found_type := true for { + //返回的所有支持的格式 for _, v := range j.Data.PlayurlInfo.Playurl.Stream { + //选取配置中的格式 if v.ProtocolName != want_type.Protocol_name { continue } for _, v := range v.Format { + //选取配置中的格式 if v.FormatName != want_type.Format_name { continue } for _, v := range v.Codec { + //选取配置中的格式 if v.CodecName != want_type.Codec_name { continue } @@ -631,6 +641,9 @@ func (c *GetFunc) getRoomPlayInfo() (missKey []string) { for _, v1 := range v.URLInfo { c.Live = append(c.Live, v1.Host+v.BaseURL+v1.Extra) } + + //找到配置格式,跳出 + break } } } diff --git a/README.md b/README.md index 2980b43..6106414 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ golang go version go1.16 linux/amd64 本项目使用github action自动构建,构建过程详见[yml](https://github.com/qydysky/bili_danmu/blob/master/.github/workflows/go.yml) #### 流保存以及弹幕ass -注意:在 [6ecff5b](6ecff5b82c16145bc7c459f086b9bf13574c2c76) 后的若干版本中,对流保存进行了重写,暂时只支持hls类型 +~~注意:在 [6ecff5b](6ecff5b82c16145bc7c459f086b9bf13574c2c76) 后的若干版本中,对流保存进行了重写,暂时只支持hls类型~~ 在`demo/config/config_K_v.json`中可找到配置项 @@ -126,7 +126,7 @@ ass编码GB18030支持中文 - `utf-8` #### 直播流Web服务 -注意:在 [6ecff5b](6ecff5b82c16145bc7c459f086b9bf13574c2c76) 后的若干版本中,对流保存进行了重写,暂时只支持MP4格式流,mp4流为`流地址/mp4` +~~注意:在 [6ecff5b](6ecff5b82c16145bc7c459f086b9bf13574c2c76) 后的若干版本中,对流保存进行了重写,暂时只支持MP4格式流,mp4流为`流地址/mp4`~~ 注意:直接进入串流地址为[artplayer](https://artplayer.org/)及[Danmaku](https://github.com/weizhenye/Danmaku)的演示前端界面 @@ -148,7 +148,6 @@ I: 2021/04/13 20:07:45 命令行操作 [直播Web服务: http://192.168.31.245:3 支持跨域,注意:在https网站默认无法加载非本机http服务 -- dtmp结尾:当前正在获取的流,播放此链接时进度将保持当前流进度 - flv/m3u8结尾:保存完毕的直播流,播放此链接时将从头开始播放 - ass结尾:保存完毕的直播流字幕,有些播放器会在串流时获取此文件 - m4s结尾:hls切片 @@ -156,11 +155,11 @@ I: 2021/04/13 20:07:45 命令行操作 [直播Web服务: http://192.168.31.245:3 **特殊** - 路径为`/now` - 例:当服务地址为下方的38259口时,此对应的路径为`http://192.168.31.245:38259/now`),会重定向到当前正在获取的流,播放此链接时进度将保持当前流进度。流格式为hls或flv + 例:当服务地址为下方的38259口时,此对应的路径为`http://192.168.31.245:38259/now`),会重定向到当前正在获取的流,播放此链接时进度将保持当前流进度。若`直播流类型`为flv,则需要在url添加`?type=flv` -- 当在hls流时,(已/正在)下载的流链接后加上`?type=mp4`将会得到拼合好的mp4流。 - - 例:直播流:`http://192.168.31.245:38259/now?type=mp4`的流格式为mp4。hls录播目录:`http://192.168.31.36:23333/1016_2021_06_12_01-18-59-000/?type=mp4`的流格式为mp4) +- 路径为`/stream` + + 当前正在获取的流,播放此链接时进度将保持当前流进度。流格式为hls或flv 测试可用项目(测试可连续播放10min+): diff --git a/Reply/F.go b/Reply/F.go index a8cd4e3..7ec5e4a 100644 --- a/Reply/F.go +++ b/Reply/F.go @@ -35,18 +35,18 @@ import ( ) /* - F额外功能区 +F额外功能区 */ var flog = c.C.Log.Base(`功能`) -//功能开关选取函数 +// 功能开关选取函数 func IsOn(s string) bool { v, ok := c.C.K_v.LoadV(s).(bool) return ok && v } -//字符重复度检查 -//a在buf中出现的字符占a的百分数 +// 字符重复度检查 +// a在buf中出现的字符占a的百分数 func cross(a string, buf []string) float32 { var s float32 var matched bool @@ -70,7 +70,7 @@ func cross(a string, buf []string) float32 { return s / float32(len([]rune(a))) } -//在a中仅出现一次出现的字符占a的百分数 +// 在a中仅出现一次出现的字符占a的百分数 func selfcross(a string) float32 { buf := make(map[rune]bool) for _, v := range a { @@ -81,10 +81,10 @@ func selfcross(a string) float32 { return 1 - float32(len(buf))/float32(len([]rune(a))) } -//在a的每个字符串中 -//出现的字符次数最多的 -//占出现的字符总数的百分数 -//*单字符串中的重复出现计为1次 +// 在a的每个字符串中 +// 出现的字符次数最多的 +// 占出现的字符总数的百分数 +// *单字符串中的重复出现计为1次 func selfcross2(a []string) (float32, string) { buf := make(map[rune]float32) for _, v := range a { @@ -112,8 +112,8 @@ func selfcross2(a []string) (float32, string) { return max / all, maxS } -//功能区 -//ShowRev 显示h营收 +// 功能区 +// ShowRev 显示h营收 var ( ShowRev_old float64 ShowRev_start bool @@ -137,7 +137,7 @@ func ShowRevf() { } } -//Ass 弹幕转字幕 +// Ass 弹幕转字幕 type Ass struct { file string //弹幕ass文件名 startT time.Time //开始记录的基准时间 @@ -187,7 +187,7 @@ func init() { } } -//设定字幕文件名,为""时停止输出 +// 设定字幕文件名,为""时停止输出 func Ass_f(save_path string, file string, st time.Time) { if !IsOn(`仅保存当前直播间流`) { return @@ -212,7 +212,7 @@ func Ass_f(save_path string, file string, st time.Time) { ass.startT = st } -//传入要显示的单条字幕 +// 传入要显示的单条字幕 func Assf(s string) { if !IsOn("生成Ass弹幕") { return @@ -241,7 +241,7 @@ func Assf(s string) { }) } -//时间转化为0:00:00.00规格字符串 +// 时间转化为0:00:00.00规格字符串 func dtos(t time.Duration) string { M := int(math.Floor(t.Minutes())) % 60 S := int(math.Floor(t.Seconds())) % 60 @@ -250,8 +250,8 @@ func dtos(t time.Duration) string { return fmt.Sprintf("%d:%02d:%02d.%02d", int(math.Floor(t.Hours())), M, S, Ns) } -//hls -//https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming +// hls +// https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming var streamO = new(psync.Map) // 获取实例的Common @@ -869,7 +869,7 @@ func Jiezouf(s []string) bool { return false } -//保存所有消息到json +// 保存所有消息到json func init() { Save_to_json(0, []interface{}{`[`}) c.C.Danmu_Main_mq.Pull_tag(msgq.FuncMap{ @@ -894,7 +894,7 @@ func Save_to_json(Loc int, Context []interface{}) { } } -//进入房间发送弹幕 +// 进入房间发送弹幕 func Entry_danmu() { flog := flog.Base_add(`进房弹幕`) @@ -918,7 +918,7 @@ func Entry_danmu() { } } -//保持所有牌子点亮 +// 保持所有牌子点亮 func Keep_medal_light() { if v, _ := c.C.K_v.LoadV(`保持牌子亮着`).(bool); !v { return @@ -978,7 +978,7 @@ func Keep_medal_light() { } } -//自动发送即将过期的银瓜子礼物 +// 自动发送即将过期的银瓜子礼物 func AutoSend_silver_gift() { day, _ := c.C.K_v.LoadV(`发送还有几天过期的礼物`).(float64) if day <= 0 { @@ -1007,7 +1007,7 @@ func AutoSend_silver_gift() { } } -//直播Web服务口 +// 直播Web服务口 var StreamWs = websocket.New_server() func SendStreamWs(msg string) { @@ -1050,7 +1050,7 @@ func init() { } http.ServeFile(w, r, "html/artPlayer/"+path) }, - `/mp4`: func(w http.ResponseWriter, r *http.Request) { + `/stream`: func(w http.ResponseWriter, r *http.Request) { //header w.Header().Set("Access-Control-Allow-Credentials", "true") w.Header().Set("Access-Control-Allow-Headers", "*") @@ -1099,7 +1099,7 @@ func init() { } } -//此次直播的交互人数 +// 此次直播的交互人数 var communicate Communicate type Communicate struct { diff --git a/Reply/flvDecode.go b/Reply/flvDecode.go index 67ef978..27b0aa0 100644 --- a/Reply/flvDecode.go +++ b/Reply/flvDecode.go @@ -427,10 +427,11 @@ func TimeStramp_Check(path string) error { // this fuction read []byte and return flv header and all complete keyframe if possible. // complete keyframe means the video and audio tags between two video key frames tag -func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err error) { +func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, last_avilable_offset int, err error) { //get flv header(9byte) + FirstTagSize(4byte) if header_offset := bytes.Index(buf, flv_header_sign); header_offset != -1 { front_buf = buf[header_offset : header_offset+flv_header_size+previou_tag_size] + last_avilable_offset = header_offset + flv_header_size + previou_tag_size } var ( @@ -465,6 +466,7 @@ func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err erro streamid := int(F.Btoi32([]byte{0x00, buf[tag_offset+8], buf[tag_offset+9], buf[tag_offset+10]}, 0)) if streamid != 0 { buf_offset = tag_offset + 1 + last_avilable_offset = buf_offset // fmt.Printf("streamid error %x\n",buf[tag_offset:tag_offset+tag_header_size]) continue //streamid error } @@ -477,6 +479,7 @@ func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err erro } if tag_size == 0 { buf_offset = tag_offset + 1 + last_avilable_offset = buf_offset // fmt.Printf("tag_size error %x\n",buf[tag_offset:tag_offset+tag_header_size]) continue //tag_size error } @@ -487,18 +490,21 @@ func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err erro } if tag_size_check != tag_size+tag_header_size { buf_offset = tag_offset + 1 + last_avilable_offset = buf_offset // fmt.Printf("tag_size_check error %x\n",buf[tag_offset:tag_offset+tag_header_size]) continue //tag_size_check error } time_stamp := int(F.Btoi32([]byte{buf[tag_offset+7], buf[tag_offset+4], buf[tag_offset+5], buf[tag_offset+6]}, 0)) - // fmt.Printf("%x\n",buf[tag_offset:tag_offset+tag_header_size]) + // show tag header + // fmt.Printf("%x\n", buf[tag_offset:tag_offset+tag_header_size]) tag_num += 1 if time_stamp == 0 { if len(front_buf) != 0 { + //first video audio script tag if (buf[tag_offset] == video_tag) && (sign&0x04 == 0x00) { sign |= 0x04 front_buf = append(front_buf, buf[tag_offset:tag_offset+tag_size_check+previou_tag_size]...) @@ -511,6 +517,7 @@ func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err erro } } buf_offset = tag_offset + tag_size_check + previou_tag_size + last_avilable_offset = buf_offset continue } @@ -518,6 +525,7 @@ func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err erro if buf[tag_offset+11]&0xf0 == 0x10 { //key frame keyframe_num += 1 keyframe = append(keyframe, []byte{}) + last_avilable_offset = tag_offset } if keyframe_num >= 0 { @@ -527,7 +535,6 @@ func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err erro if keyframe_num >= 0 { keyframe[keyframe_num] = append(keyframe[keyframe_num], buf[tag_offset:tag_offset+tag_size_check+previou_tag_size]...) } - } else { } buf_offset = tag_offset + tag_size_check + previou_tag_size @@ -536,7 +543,7 @@ func Seach_stream_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err erro return } -//same as Seach_stream_tag but faster +// same as Seach_stream_tag but faster func Seach_keyframe_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err error) { var ( @@ -558,6 +565,8 @@ func Seach_keyframe_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err er for buf_offset+tag_header_size < len(buf) { + fmt.Println(`front_buf`, buf_offset) + tag_offset := buf_offset + bytes.IndexAny(buf[buf_offset:], string([]byte{video_tag, audio_tag, script_tag})) if tag_offset == buf_offset-1 { err = errors.New(`no found available tag`) @@ -625,7 +634,7 @@ func Seach_keyframe_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err er //keyframe var last_keyframe_offset int for buf_offset+tag_header_size < len(buf) { - + fmt.Println(`keyframe`, buf_offset) tag_offset := buf_offset + bytes.Index(buf[buf_offset:], []byte{video_tag}) if tag_offset == buf_offset-1 { err = errors.New(`no found available tag`) @@ -686,8 +695,8 @@ func Seach_keyframe_tag(buf []byte) (front_buf []byte, keyframe [][]byte, err er return } -//this fuction merge two stream and return the merge buffer,which has the newest frame. -//once len(merge_buf) isn't 0,old_buf can be drop and new_buf can be used from now on.or it's still need to keep buf until find the same tag. +// this fuction merge two stream and return the merge buffer,which has the newest frame. +// once len(merge_buf) isn't 0,old_buf can be drop and new_buf can be used from now on.or it's still need to keep buf until find the same tag. func Merge_stream(keyframe_lists [][][]byte, last_keyframe_timestramp int) (keyframe_timestamp int, merge_buf []byte, merged int) { if len(keyframe_lists) == 0 { @@ -917,3 +926,45 @@ func Keyframe_timebase(buf [][]byte, last_keyframe_timestamp int) (keyframe_time } return } + +func SearchStreamOffset(buf []byte) (front_buf []byte, available_offset int) { + //get flv header(9byte) + FirstTagSize(4byte) + { + if bytes.Index(buf, flv_header_sign) == 0 { + front_buf = buf[:flv_header_size+previou_tag_size] + } + } + + var sign = 0x00 + for buf_offset := 0; buf_offset < len(buf); { + if tag_offset := buf_offset + bytes.IndexAny(buf[buf_offset:], string([]byte{video_tag, audio_tag, script_tag})); tag_offset == buf_offset-1 { + return //no found available video,audio,script tag + } else if streamid_offset := tag_offset + bytes.Index(buf[tag_offset:], []byte{0x00, 0x00, 0x00}); streamid_offset == tag_offset-1 { + return //no found available streamid + } else if streamid_offset-8 != tag_offset { + buf_offset = tag_offset + 1 + continue //streamid offset error + } else if time_offset := tag_offset + 4; bytes.Index(buf[time_offset:time_offset+2], []byte{0x00, 0x00, 0x00}) == 0 { + + size := int(F.Btoi32(append([]byte{0x00}, buf[tag_offset+1:tag_offset+3]...), 0) + 7) + if (buf[tag_offset] == video_tag) && (sign&0x04 == 0x00) { + sign |= 0x04 + front_buf = append(front_buf, buf[tag_offset:tag_offset+size]...) + } else if (buf[tag_offset] == audio_tag) && (sign&0x02 == 0x00) { + sign |= 0x02 + front_buf = append(front_buf, buf[tag_offset:tag_offset+size]...) + } else if (buf[tag_offset] == script_tag) && (sign&0x01 == 0x00) { + sign |= 0x01 + front_buf = append(front_buf, buf[tag_offset:tag_offset+size]...) + } + + buf_offset = tag_offset + 1 + continue //time error + + } else { + available_offset = tag_offset + return + } + } + return +} diff --git a/Reply/stream.go b/Reply/stream.go index 03cd9d0..7371e62 100644 --- a/Reply/stream.go +++ b/Reply/stream.go @@ -36,7 +36,7 @@ type M4SStream struct { stream_hosts sync.Map //使用的流服务器 stream_type string //流类型 Stream_msg *msgq.Msgq //流数据消息 tag:data - first_m4s []byte //m4s起始块 + first_buf []byte //m4s起始块 or flv起始块 last_m4s *m4s_link_item //最后一个切片 common c.Common //通用配置副本 Current_save_path string //明确的直播流保存目录 @@ -114,11 +114,11 @@ func (t *M4SStream) LoadConfig(common c.Common, l *log.Log_interface) { } } -func (t *M4SStream) getFirstM4S() []byte { +func (t *M4SStream) getFirstBuf() []byte { if t == nil { return []byte{} } - return t.first_m4s + return t.first_buf } func (t *M4SStream) fetchCheckStream() bool { @@ -160,8 +160,16 @@ func (t *M4SStream) fetchCheckStream() bool { SleepTime: 1000, Proxy: t.common.Proxy, Header: map[string]string{ - `Cookie`: reqf.Map_2_Cookies_String(CookieM), - `Connection`: `close`, + `User-Agent`: `Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0`, + `Accept`: `*/*`, + `Accept-Language`: `zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2`, + `Accept-Encoding`: `gzip, deflate, br`, + `Origin`: `https://live.bilibili.com`, + `Pragma`: `no-cache`, + `Cache-Control`: `no-cache`, + `Referer`: "https://live.bilibili.com/", + `Cookie`: reqf.Map_2_Cookies_String(CookieM), + `Connection`: `close`, }, Timeout: 5 * 1000, JustResponseCode: true, @@ -415,7 +423,118 @@ func (t *M4SStream) saveStream() { } func (t *M4SStream) saveStreamFlv() { - t.log.L(`E: `, `not support yet`) + //对每个直播流进行尝试 + for _, v := range t.common.Live { + //结束退出 + if !t.Status.Islive() { + break + } + + surl, err := url.Parse(v) + if err != nil { + t.log.L(`E: `, err) + break + } + + //开始获取 + req := t.reqPool.Get() + { + s := signal.Init() + r := req.Item.(*reqf.Req) + + go func() { + select { + //停止录制 + case <-t.Status.WaitC(): + r.Cancel() + //当前连接终止 + case <-s.WaitC(): + } + }() + + out, err := os.Create(t.Current_save_path + `0.flv`) + if err != nil { + out.Close() + } + rc, rw := io.Pipe() + go func() { + var buff []byte + var buf = make([]byte, 1<<16) + for { + n, e := rc.Read(buf) + buff = append(buff, buf[:n]...) + if n > 0 { + front_buf, keyframe, last_avilable_offset, e := Seach_stream_tag(buff) + if e != nil { + if strings.Contains(e.Error(), `no found available tag`) { + continue + } + } + + if len(front_buf)+len(keyframe) != 0 { + if len(front_buf) != 0 { + t.first_buf = front_buf + // fmt.Println("write front_buf") + out.Write(front_buf) + t.Stream_msg.Push_tag(`data`, front_buf) + } + for _, frame := range keyframe { + // fmt.Println("write frame") + out.Write(frame) + t.Stream_msg.Push_tag(`data`, frame) + } + if last_avilable_offset != 0 { + // fmt.Println("write Sync") + buff = buff[last_avilable_offset-1:] + out.Sync() + } + } + } + if e != nil { + out.Close() + t.Stream_msg.Push_tag(`close`, nil) + break + } + } + + buf = nil + buff = nil + }() + + CookieM := make(map[string]string) + t.common.Cookie.Range(func(k, v interface{}) bool { + CookieM[k.(string)] = v.(string) + return true + }) + + if e := r.Reqf(reqf.Rval{ + Url: surl.String(), + SaveToPipeWriter: rw, + NoResponse: true, + Proxy: t.common.Proxy, + Header: map[string]string{ + `Host`: surl.Host, + `User-Agent`: `Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0`, + `Accept`: `*/*`, + `Accept-Language`: `zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2`, + `Origin`: `https://live.bilibili.com`, + `Connection`: `keep-alive`, + `Pragma`: `no-cache`, + `Cache-Control`: `no-cache`, + `Referer`: "https://live.bilibili.com/", + `Cookie`: reqf.Map_2_Cookies_String(CookieM), + }, + }); e != nil && !errors.Is(e, io.EOF) { + if reqf.IsCancel(e) { + t.log.L(`I: `, `flv下载停止`) + } else if !reqf.IsTimeout(e) { + t.log.L(`E: `, `flv下载失败:`, e) + } + } + s.Done() + } + t.reqPool.Put(req) + } t.Status.Done() } @@ -521,7 +640,7 @@ func (t *M4SStream) saveStreamM4s() { { for _, v := range download_seq { if strings.Contains(v.Base, `h`) { - t.first_m4s = v.data + t.first_buf = v.data } if v.status == 2 { @@ -669,7 +788,7 @@ func (t *M4SStream) Stop() { } t.exitSign = signal.Init() t.Status.Done() - t.log.L(`I: `, `正在等待切片下载...`) + t.log.L(`I: `, `正在等待下载完成...`) t.exitSign.Wait() } @@ -694,7 +813,7 @@ func (t *M4SStream) pusherM4s(w http.ResponseWriter, r *http.Request) { } //写入hls头 - if _, err := w.Write(t.getFirstM4S()); err != nil { + if _, err := w.Write(t.getFirstBuf()); err != nil { return } else if flushSupport { flusher.Flush() @@ -735,4 +854,38 @@ func (t *M4SStream) pusherFlv(w http.ResponseWriter, r *http.Request) { if flushSupport { flusher.Flush() } + + //写入flv头 + if _, err := w.Write(t.getFirstBuf()); err != nil { + return + } else if flushSupport { + flusher.Flush() + } + + cancel := make(chan struct{}) + + //hls切片 + t.Stream_msg.Pull_tag(map[string]func(interface{}) bool{ + `data`: func(data interface{}) bool { + if b, ok := data.([]byte); ok { + if len(b) == 0 { + close(cancel) + return true + } + if _, err := w.Write(b); err != nil { + close(cancel) + return true + } else if flushSupport { + flusher.Flush() + } + } + return false + }, + `close`: func(data interface{}) bool { + close(cancel) + return true + }, + }) + + <-cancel } diff --git a/demo/config/config_K_v.json b/demo/config/config_K_v.json index c5118aa..8c61508 100644 --- a/demo/config/config_K_v.json +++ b/demo/config/config_K_v.json @@ -54,7 +54,7 @@ "直播流清晰度-help": "清晰度可选-1:不保存 0:默认 10000:原画 800:4K 401:蓝光(杜比) 400:蓝光 250:超清 150:高清 80:流畅,无提供所选清晰度时,使用低一档清晰度", "直播流清晰度": 10000, "直播流类型-help": "flv or hls", - "直播流类型": "hls", + "直播流类型": "flv", "直播流保存位置": "E:\\test\\", "直播hls流缓冲": 20, "直播hls流均衡-help":"true:使用所有hls服务器", diff --git a/demo/go.mod b/demo/go.mod index bd954d4..1275b3c 100644 --- a/demo/go.mod +++ b/demo/go.mod @@ -4,7 +4,7 @@ go 1.14 require ( github.com/qydysky/bili_danmu v0.5.9 - github.com/qydysky/part v0.9.9 // indirect + github.com/qydysky/part v0.9.11 // indirect github.com/stretchr/testify v1.7.1 // indirect ) diff --git a/demo/go.sum b/demo/go.sum index b54424e..93ad5f1 100644 --- a/demo/go.sum +++ b/demo/go.sum @@ -64,6 +64,10 @@ github.com/qydysky/part v0.9.8 h1:9mfT7ZrwnfRI1PWds38DjGuTxMenaC0aiFGMO6aFNNQ= github.com/qydysky/part v0.9.8/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= github.com/qydysky/part v0.9.9 h1:7MWPq5WnFqHyE8owATgl90cdnxbPMVQWspvv1Fz7nts= github.com/qydysky/part v0.9.9/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= +github.com/qydysky/part v0.9.10 h1:fVSdBqNO1jC3bYDzd/VOl54UeZYyoEdaZgCNy3ADg5c= +github.com/qydysky/part v0.9.10/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= +github.com/qydysky/part v0.9.11 h1:5UIhZpjLyI13twnvYYz5yMfP/BKHHfk2twt+MN/jh6k= +github.com/qydysky/part v0.9.11/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= github.com/shirou/gopsutil v3.20.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v3.21.5+incompatible h1:OloQyEerMi7JUrXiNzy8wQ5XN+baemxSl12QgIzt0jc= github.com/shirou/gopsutil v3.21.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= diff --git a/demo/html/artPlayer/bundle.js b/demo/html/artPlayer/bundle.js index dee9ddc..7bd97ae 100644 --- a/demo/html/artPlayer/bundle.js +++ b/demo/html/artPlayer/bundle.js @@ -1,2 +1,3 @@ -(()=>{var e={755:(e,t,r)=>{e=r.nmd(e),function(t,i,o,n,s){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==r.g?r.g:{},l="function"==typeof a.parcelRequire4dc0&&a.parcelRequire4dc0,c=l.cache||{},u="function"==typeof e.require&&e.require.bind(e);function d(e,r){if(!c[e]){if(!t[e]){var i="function"==typeof a.parcelRequire4dc0&&a.parcelRequire4dc0;if(!r&&i)return i(e,!0);if(l)return l(e,!0);if(u&&"string"==typeof e)return u(e);var o=new Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}s.resolve=function(r){var i=t[e][1][r];return null!=i?i:r},s.cache={};var n=c[e]=new d.Module(e);t[e][0].call(n.exports,s,n,n.exports,this)}return c[e].exports;function s(e){var t=s.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=t,d.cache=c,d.parent=l,d.register=function(e,r){t[e]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return a.parcelRequire4dc0}}),a.parcelRequire4dc0=d;for(var p=0;pt.call(this))),re.push(this)}static get instances(){return re}static get version(){return"4.3.23"}static get env(){return"production"}static get build(){return"1651825715464"}static get config(){return h.default}static get utils(){return u}static get scheme(){return p.default}static get Emitter(){return c.default}static get validator(){return a.default}static get kindOf(){return a.default.kindOf}static get html(){return y.default.html}static get option(){return{container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,fastForward:!1,autoPlayback:!1,autoOrientation:!1,ads:[],layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,column:10},subtitle:{url:"",type:"",style:{},encoding:"utf-8"},moreVideoAttr:{controls:!1,preload:u.isSafari?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}destroy(e=!0){this.events.destroy(),this.template.destroy(e),re.splice(re.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}if(r.default=ie,ie.NOTICE_TIME=2e3,ie.SETTING_WIDTH=250,ie.SETTING_ITEM_WIDTH=200,ie.SETTING_ITEM_HEIGHT=35,ie.INDICATOR_SIZE=14,ie.INDICATOR_SIZE_ICON=16,ie.INDICATOR_SIZE_MOBILE=18,ie.INDICATOR_SIZE_MOBILE_ICON=20,ie.VOLUME_PANEL_WIDTH=60,ie.VOLUME_HANDLE_WIDTH=12,ie.RESIZE_TIME=500,ie.SCROLL_TIME=200,ie.SCROLL_GAP=50,ie.AUTO_PLAYBACK_MAX=10,ie.RECONNECT_TIME_MAX=5,ie.RECONNECT_SLEEP_TIME=1e3,ie.CONTROL_HIDE_TIME=3e3,ie.DB_CLICE_TIME=300,ie.MOBILE_AUTO_PLAYBACKRATE=3,ie.MOBILE_AUTO_PLAYBACKRATE_TIME=1e3,ie.MOBILE_AUTO_ORIENTATION_TIME=200,ie.INFO_LOOP_TIME=1e3,ie.FAST_FORWARD_VALUE=3,ie.FAST_FORWARD_TIME=1e3,"undefined"!=typeof document&&!document.getElementById("artplayer-style")){const e=document.createElement("style");e.id="artplayer-style",e.textContent=n.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.Artplayer=ie),console.log(`%c ArtPlayer %c ${ie.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},{"bundle-text:./style/index.less":"9EPUe","option-validator":"hqjoJ","./utils/emitter":"7pHuB","./utils":"geSvU","./scheme":"3vPoh","./config":"eksZR","./whitelist":"fCKwj","./template":"bqHdK","./i18n":"4O9ZY","./player":"fzROd","./control":"kJ9J9","./contextmenu":"7rh9q","./info":"c896w","./subtitle":"2hqso","./events":"j2hlX","./hotkey":"aTHWZ","./layer":"f2kxw","./loading":"bOs9w","./notice":"ic4th","./mask":"iLfmB","./icons":"5lAmI","./setting":"d5XKP","./storage":"5M8nN","./plugins":"jWfEd","./ads":"aafSd","./mobile":"fkUkB","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9EPUe":[function(e,t,r){t.exports='.art-video-player{z-index:20;width:100%;height:100%;zoom:1;color:#eee;text-align:left;direction:ltr;user-select:none;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#000;outline:0;margin:0 auto;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;display:flex;position:relative}.art-video-player *{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:5px;height:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter: initial) or (backdrop-filter: initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-video-player .art-video{z-index:10;width:100%;height:100%;cursor:pointer;background-color:#000;position:absolute;inset:0}.art-video-player .art-poster{z-index:11;width:100%;height:100%;user-select:none;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;width:100%;text-align:center;color:#fff;pointer-events:none;text-shadow:1px 0 1px #000,0 1px 1px #000,-1px 0 1px #000,0 -1px 1px #000,1px 1px 1px #000,-1px -1px 1px #000,1px -1px 1px #000,-1px 1px 1px #000;padding:0 20px;font-size:20px;display:none;position:absolute;bottom:10px}.art-video-player .art-subtitle p{word-break:break-all;height:fit-content;margin:5px 0 0;line-height:1.2}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{z-index:50;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-mask .art-state{width:60px;height:60px;opacity:.85;cursor:pointer;pointer-events:all;justify-content:center;align-items:center;display:flex;position:absolute;bottom:65px;right:30px}.art-video-player.art-mask-show .art-mask{display:flex}.art-video-player.art-mobile .art-state{position:static}.art-video-player .art-loading{z-index:70;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;height:100px;opacity:0;visibility:hidden;pointer-events:none;background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:space-between;padding:50px 10px 0;transition:all .2s ease-in-out;display:flex;position:absolute;bottom:0;left:0;right:0}.art-video-player .art-bottom .art-progress{z-index:0;pointer-events:auto;flex:1;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress{height:4px;cursor:pointer;flex-direction:row;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{height:50%;width:100%;background:#fff3;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;height:100%;width:0;background:#fff6;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;height:100%;width:0;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;height:100%;pointer-events:none;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{width:7px;height:100%;pointer-events:auto;background:#fff;display:inline-block;position:absolute;top:0;left:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{visibility:hidden;z-index:40;border-radius:50%;justify-content:center;align-items:center;transition:transform .1s ease-in-out;position:absolute;transform:scale(.1)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none;user-select:none}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;height:20px;color:#fff;text-align:center;white-space:nowrap;background:#000000b3;border-radius:3px;padding:0 5px;font-size:12px;font-weight:700;line-height:20px;display:none;position:absolute;top:-25px;left:0}.art-video-player .art-bottom .art-progress .art-control-thumbnails{pointer-events:none;background-color:#000000b3;display:none;position:absolute;bottom:8px;left:0}.art-video-player .art-bottom .art-progress .art-control-loop{width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point{width:2px;height:8px;background:#ffffffbf;position:absolute;top:-2px;left:0}.art-video-player .art-bottom .art-controls{z-index:1;pointer-events:auto;height:45px;justify-content:space-between;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:flex}.art-video-player .art-bottom .art-controls .art-controls-right{justify-content:flex-end}.art-video-player .art-bottom .art-controls .art-control{opacity:.9;min-height:36px;min-width:36px;text-align:center;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;font-size:12px;line-height:1;display:flex}.art-video-player .art-bottom .art-controls .art-control .art-icon{float:left;height:36px;width:36px;justify-content:center;align-items:center;display:flex}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{float:left;width:0;height:100%;transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);position:relative;overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{width:12px;height:12px;background:#fff;border-radius:12px;margin-top:-6px;position:absolute;top:50%;left:0}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{background:#fff;left:-54px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{background:#fff3;left:6px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{content:"";height:3px;width:60px;margin-top:-2px;display:block;position:absolute;top:50%}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{z-index:30;position:relative}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{width:100px;text-align:center;color:#fff;background:#000c;border-radius:3px;padding:5px 0;display:none;position:absolute;bottom:35px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;line-height:30px;overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:#ffffff1a}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner{height:100%}.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{visibility:visible;transform:scale(1)}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-error .art-progress-indicator,.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-error .art-progress-tip,.art-video-player.art-destroy .art-progress-tip{display:none!important}.art-video-player.art-mobile .art-bottom{padding:50px 7px 0}.art-video-player.art-mobile .art-bottom .art-controls{height:40px}.art-video-player.art-mobile .art-bottom .art-progress-indicator{visibility:visible!important;transform:scale(1)!important}.art-video-player .art-notice{z-index:80;width:100%;pointer-events:none;padding:10px;font-size:14px;display:none;position:absolute;top:0;left:0}.art-video-player .art-notice .art-notice-inner{color:#fff;background-color:#0009;border-radius:3px;padding:5px 10px;display:inline-block}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;min-width:200px;background-color:#000000e6;border-radius:3px;flex-direction:column;padding:5px 0;display:none;position:absolute;top:10px;left:10px}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;border-bottom:1px solid #ffffff1a;padding:10px 15px;font-size:12px;display:block;overflow:hidden}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 7px;display:inline-block}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:0}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;height:auto;max-height:300px;background-color:#000000e6;border-radius:3px;font-size:13px;transition:all .2s;display:none;position:absolute;bottom:50px;right:10px;overflow:auto}.art-video-player .art-settings .art-setting-panel{display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:block}.art-video-player .art-settings .art-setting-panel .art-setting-item{height:35px;cursor:pointer;color:#fffc;justify-content:space-between;align-items:center;padding:0 5px;line-height:1;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover,.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:#fff;background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon{width:30px;height:30px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{white-space:nowrap;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:24px;width:24px;justify-content:center;align-items:center;margin-right:10px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80;font-size:12px}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{height:24px;width:24px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:block}.art-video-player.art-mobile .art-settings{max-height:200px}.art-video-player .art-info{z-index:100;width:350px;color:#fff;-webkit-font-smoothing:antialiased;background-color:#000000e6;flex-direction:column;padding:10px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;font-size:12px;display:none;position:absolute;top:10px;left:10px}.art-video-player .art-info .art-info-item{margin-bottom:5px;display:flex}.art-video-player .art-info .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;flex:1;padding-left:5px;overflow:hidden}.art-video-player .art-info .art-info-item:last-child{margin-bottom:0}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-video-player.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;object-fit:fill}.art-video-player.art-fullscreen-web{z-index:9999;width:100%;height:100%;position:fixed;inset:0}.art-fullscreen-rotate{z-index:9999;width:100%;height:100%;background-color:#000;position:fixed;inset:0}.art-video-player .art-mini-header{z-index:110;height:35px;color:#fff;opacity:0;visibility:hidden;background-color:#00000080;justify-content:space-between;align-items:center;line-height:35px;transition:all .2s ease-in-out;display:none;position:absolute;top:0;left:0;right:0}.art-video-player .art-mini-header .art-mini-title{text-overflow:ellipsis;white-space:nowrap;cursor:move;flex:1;padding:0 10px;overflow:hidden}.art-video-player .art-mini-header .art-mini-close{width:35px;text-align:center;cursor:pointer;font-size:22px}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-mini{z-index:9999;width:400px;height:225px;position:fixed;box-shadow:0 2px 5px #00000029,0 3px 6px #0003}.art-video-player.art-mini .art-mini-header{user-select:none;display:flex}.art-video-player.art-mini.art-hover .art-mini-header{opacity:1;visibility:visible}.art-video-player.art-mini .art-mask .art-state{position:static}.art-video-player.art-mini .art-contextmenu,.art-video-player.art-mini .art-bottom,.art-video-player.art-mini .art-danmu,.art-video-player.art-mini .art-info,.art-video-player.art-mini .art-layers,.art-video-player.art-mini .art-notice,.art-video-player.art-mini .art-setting,.art-video-player.art-mini .art-subtitle{display:none!important}.art-auto-size{justify-content:center;align-items:center;display:flex}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-miniProgressBar{height:2px;background-color:var(--theme);display:block;position:absolute;bottom:0;left:0;right:0}.art-video-player .art-layer-lock{height:34px;width:34px;color:#fff;background-color:#00000080;border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;top:calc(50% - 17px);left:15px}.art-video-player.art-lock .art-bottom{display:none!important}.art-video-player.art-lock .art-subtitle{bottom:10px!important}.art-video-player.art-lock .art-layer-miniProgressBar{display:block!important}.art-video-player.art-control-show .art-layer-miniProgressBar{display:none}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-video-player .art-control-selector{position:relative}.art-video-player .art-control-selector .art-selector-list{min-width:100px;max-width:200px;max-height:200px;text-align:center;color:#fff;background-color:#000c;border-radius:3px;padding:5px 0;display:none;position:absolute;bottom:35px;overflow:auto}.art-video-player .art-control-selector .art-selector-list .art-selector-item{height:30px;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;padding:0 5px;line-height:30px;overflow:hidden}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover,.art-video-player .art-control-selector .art-selector-list .art-selector-item.art-current{color:#00c9ff}.art-video-player .art-control-selector:hover .art-selector-list{display:block}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000000;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}'},{}],hqjoJ:[function(e,t,r){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return function(e){return"GeneratorFunction"===i(e)}(r)?"generatorfunction":"function";if(function(e){return Array.isArray?Array.isArray(e):e instanceof Array}(r))return"array";if(function(e){return!(!e.constructor||"function"!=typeof e.constructor.isBuffer)&&e.constructor.isBuffer(e)}(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(function(e){return e instanceof Date||"function"==typeof e.toDateString&&"function"==typeof e.getDate&&"function"==typeof e.setDate}(r))return"date";if(function(e){return e instanceof Error||"string"==typeof e.message&&e.constructor&&"number"==typeof e.constructor.stackTraceLimit}(r))return"error";if(function(e){return e instanceof RegExp||"string"==typeof e.flags&&"boolean"==typeof e.ignoreCase&&"boolean"==typeof e.multiline&&"boolean"==typeof e.global}(r))return"regexp";switch(i(r)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(e){return"function"==typeof e.throw&&"function"==typeof e.return&&"function"==typeof e.next}(r))return"generator";switch(o=t.call(r)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function i(e){return e.constructor?e.constructor.name:null}function o(e,t){var i=2n)),i.export(r,"queryAll",(()=>s)),i.export(r,"addClass",(()=>a)),i.export(r,"removeClass",(()=>l)),i.export(r,"hasClass",(()=>c)),i.export(r,"append",(()=>u)),i.export(r,"remove",(()=>d)),i.export(r,"setStyle",(()=>p)),i.export(r,"setStyles",(()=>f)),i.export(r,"getStyle",(()=>h)),i.export(r,"sublings",(()=>m)),i.export(r,"inverseClass",(()=>g)),i.export(r,"tooltip",(()=>v)),i.export(r,"isInViewport",(()=>y)),i.export(r,"includeFromEvent",(()=>b)),i.export(r,"replaceElement",(()=>x));var o=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function a(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function c(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function p(e,t,r){return e.style[t]=r,e}function f(e,t){return Object.keys(t).forEach((r=>{p(e,r,t[r])})),e}function h(e,t,r=!0){const i=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(i):i}function m(e){return Array.from(e.parentElement.children).filter((t=>t!==e))}function g(e,t){m(e).forEach((e=>l(e,t))),a(e,t)}function v(e,t,r="top"){o.isMobile||(e.setAttribute("aria-label",t),a(e,"hint--rounded"),a(e,`hint--${r}`))}function y(e,t=0){const r=e.getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,n=r.top-t<=i&&r.top+r.height+t>=0,s=r.left-t<=o+t&&r.left+r.width+t>=0;return n&&s}function b(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function x(e,t){return t.parentNode.replaceChild(e,t),e}},{"./compatibility":"ki3pQ","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ki3pQ:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"userAgent",(()=>o)),i.export(r,"isMobile",(()=>n)),i.export(r,"isSafari",(()=>s)),i.export(r,"isWechat",(()=>a)),i.export(r,"isIE",(()=>l));const o="undefined"!=typeof window?window.navigator.userAgent:"",n=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(o),s=/^((?!chrome|android).)*safari/i.test(o),a=/MicroMessenger/i.test(o),l=/MSIE|Trident/i.test(o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lDQPM:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"ArtPlayerError",(()=>o)),i.export(r,"errorHandle",(()=>n));class o extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new o(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1dyFb":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){return"WEBVTT \r\n\r\n".concat((t=e,t.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,((e,t,r)=>{let i=r.slice(0,3);return 1===r.length&&(i=r+"00"),2===r.length&&(i=r+"0"),`${t},${i}`}))).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"));var t}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){const t=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map(((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`})).join("")}return`WEBVTT\n\n${e.split(/\r?\n/).map((e=>{const i=e.match(t);return i?{start:r(i[1].trim()),end:r(i[2].trim()),text:i[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((e=>e.trim())).join("\n")}:null})).filter((e=>e)).map(((e,t)=>e?`${t+1}\n${e.start} --\x3e ${e.end}\n${e.text}`:"")).filter((e=>e.trim())).join("\n\n")}`}i.defineInteropFlag(r),i.export(r,"srtToVtt",(()=>o)),i.export(r,"vttToBlob",(()=>n)),i.export(r,"assToVtt",(()=>s))},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"96gQe":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){return e.includes("?")?o(e.split("?")[0]):e.includes("#")?o(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}function n(e,t){const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}i.defineInteropFlag(r),i.export(r,"getExt",(()=>o)),i.export(r,"download",(()=>n))},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lMM6V:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"def",(()=>o)),i.export(r,"has",(()=>s)),i.export(r,"get",(()=>a)),i.export(r,"mergeDeep",(()=>l));const o=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function a(e,t){return Object.getOwnPropertyDescriptor(e,t)}function l(...e){const t=e=>e&&"object"==typeof e&&!Array.isArray(e);return e.reduce(((e,r)=>(Object.keys(r).forEach((i=>{const o=e[i],n=r[i];Array.isArray(o)&&Array.isArray(n)?e[i]=o.concat(...n):!t(o)||!t(n)||n instanceof Element?e[i]=n:e[i]=l(o,n)})),e)),{})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"41yFW":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e=0){return new Promise((t=>setTimeout(t,e)))}function n(e,t,r){let i;function o(...o){clearTimeout(i),i=setTimeout((function(){i=null,e.apply(r,o)}),t)}return o.clearTimeout=function(){clearTimeout(i)},o}function s(e,t){let r,i,o=!1;return function n(...s){if(o)return r=s,void(i=this);o=!0,e.apply(this,s),setTimeout((()=>{o=!1,r&&(n.apply(i,r),r=null,i=null)}),t)}}i.defineInteropFlag(r),i.export(r,"sleep",(()=>o)),i.export(r,"debounce",(()=>n)),i.export(r,"throttle",(()=>s))},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],MRJhs:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){const t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),i=Math.floor(e-3600*t-60*r);return(t>0?[t,r,i]:[r,i]).map((e=>e<10?`0${e}`:String(e))).join(":")}function s(e){return e.replace(/[&<>'"]/g,(e=>({"&":"&","<":"<",">":">","'":"'",'"':"""}[e]||e)))}i.defineInteropFlag(r),i.export(r,"clamp",(()=>o)),i.export(r,"secondToTime",(()=>n)),i.export(r,"escape",(()=>s))},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3vPoh":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"ComponentOption",(()=>d));var o=e("../utils");const n="boolean",s="string",a="number",l="object",c="function";function u(e,t,r){return o.errorHandle(t===s||e instanceof Element,`${r.join(".")} require '${s}' or 'Element' type`)}const d={html:u,disable:`?${n}`,name:`?${s}`,index:`?${a}`,style:`?${l}`,click:`?${c}`,mounted:`?${c}`,tooltip:`?${s}`,width:`?${a}`,selector:"?array",onSelect:`?${c}`};r.default={container:u,url:s,poster:s,title:s,type:s,theme:s,lang:s,volume:a,isLive:n,muted:n,autoplay:n,autoSize:n,autoMini:n,loop:n,flip:n,playbackRate:n,aspectRatio:n,screenshot:n,setting:n,hotkey:n,pip:n,mutex:n,backdrop:n,fullscreen:n,fullscreenWeb:n,subtitleOffset:n,miniProgressBar:n,useSSR:n,playsInline:n,lock:n,fastForward:n,autoPlayback:n,autoOrientation:n,ads:[{url:s}],plugins:[c],whitelist:[`${s}|${c}|regexp`],layers:[d],contextmenu:[d],settings:[d],controls:[{...d,position:(e,t,r)=>{const i=["top","left","right"];return o.errorHandle(i.includes(e),`${r.join(".")} only accept ${i.toString()} as parameters`)}}],quality:[{default:`?${n}`,html:s,url:s}],highlight:[{time:a,text:s}],thumbnails:{url:s,number:a,column:a},subtitle:{url:s,type:s,style:l,encoding:s},moreVideoAttr:l,icons:l,customType:l}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],eksZR:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={propertys:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fCKwj:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("./utils");r.default=class{constructor(e){this.art=e}get state(){const{option:e,constructor:{kindOf:t}}=this.art;return!i.isMobile||e.whitelist.some((e=>{switch(t(e)){case"string":return"*"===e||i.userAgent.indexOf(e)>-1;case"function":return e(i.userAgent);case"regexp":return e.test(i.userAgent);default:return!1}}))}}},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bqHdK:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("./utils");class o{constructor(e){this.art=e;const{option:t,constructor:r,whitelist:o}=e;t.container instanceof Element?this.$container=t.container:(this.$container=i.query(t.container),i.errorHandle(this.$container,`No container element found by ${t.container}`));const n=this.$container.tagName.toLowerCase();i.errorHandle("div"===n,`Unsupported container element type, only support 'div' but got '${n}'`),i.errorHandle(r.instances.every((e=>e.template.$container!==this.$container)),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.$original=this.$container.cloneNode(!0),o.state?this.desktop():this.mobile()}static get html(){return'
Player version:
4.3.23
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
×
'}query(e){return i.query(e,this.$container)}desktop(){const{option:e}=this.art;e.useSSR||(this.$container.innerHTML=o.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),e.backdrop&&(i.addClass(this.$setting,"art-backdrop-filter"),i.addClass(this.$contextmenu,"art-backdrop-filter"),i.addClass(this.$info,"art-backdrop-filter")),i.isMobile&&i.addClass(this.$player,"art-mobile")}mobile(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}destroy(e){e?i.replaceElement(this.$original,this.$container):i.addClass(this.$player,"art-destroy")}}r.default=o},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4O9ZY":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("../utils"),n=e("./zh-cn.json"),s=i.interopDefault(n),a=e("./zh-tw.json"),l=i.interopDefault(a),c=e("./pl.json"),u=i.interopDefault(c),d=e("./cs.json"),p=i.interopDefault(d);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default,"zh-tw":l.default,pl:u.default,cs:p.default},this.init()}init(){const e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=o.mergeDeep(this.languages,e),this.init()}}},{"../utils":"geSvU","./zh-cn.json":"e7BQ4","./zh-tw.json":"5kFyN","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2","./pl.json":"3cd1e","./cs.json":"an7cR"}],e7BQ4:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"统计信息","Close":"关闭","Video Load Failed":"加载失败","Volume":"音量","Play":"播放","Pause":"暂停","Rate":"速度","Mute":"静音","Video Flip":"画面翻转","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新连接","Hide Subtitle":"隐藏字幕","Show Subtitle":"显示字幕","Show Setting":"显示设置","Hide Setting":"隐藏设置","Screenshot":"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例","Default":"默认","Normal":"正常","Open":"打开","Switch Video":"切换","Switch Subtitle":"切换字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Auto playback at":"已为您定位至"}')},{}],"5kFyN":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"統計訊息","Close":"關閉","Video Load Failed":"載入失敗","Volume":"音量","Play":"播放","Pause":"暫停","Rate":"速度","Mute":"靜音","Video Flip":"畫面翻轉","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新連接","Hide Subtitle":"隱藏字幕","Show Subtitle":"顯示字幕","Show Setting":"顯示设置","Hide Setting":"隱藏设置","Screenshot":"截圖","Play Speed":"播放速度","Aspect Ratio":"畫面比例","Default":"默認","Normal":"正常","Open":"打開","Switch Video":"切換","Switch Subtitle":"切換字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"網頁全屏","Exit Web Fullscreen":"退出網頁全屏","Mini Player":"迷你播放器","PIP Mode":"開啟畫中畫","Exit PIP Mode":"退出畫中畫","PIP Not Supported":"不支持畫中畫","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Auto playback at":"已為您定位至"}')},{}],"3cd1e":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informacje o wideo","Close":"Zamknij","Video Load Failed":"Błąd ładowania wideo","Volume":"Głośność","Play":"Odtwórz","Pause":"Wstrzymaj","Rate":"Oceń","Mute":"Wycisz","Video Flip":"Rotacja wideo","Horizontal":"Pozioma","Vertical":"Pionowa","Reconnect":"Połącz ponownie","Hide Subtitle":"Ukryj napisy","Show Subtitle":"Pokaż napisy","Show Setting":"Pokaż ustawienia","Hide Setting":"Ukryj ustawienia","Screenshot":"Zrzut ekranu","Play Speed":"Prędkość odtwarzania","Aspect Ratio":"Współczynnik proporcji","Default":"Domyślny","Normal":"Normalny","Open":"Otwórz","Switch Video":"Przełącz wideo","Switch Subtitle":"Przełącz napisy","Fullscreen":"Pełny ekran","Exit Fullscreen":"Zamknij pełny ekran","Web Fullscreen":"Tryb pełnej strony","Exit Web Fullscreen":"Zamknij tryb pełnej strony","Mini Player":"Miniodtwarzacz","PIP Mode":"Tryb PiP","Exit PIP Mode":"Zamknij tryb PiP","PIP Not Supported":"Tryb PiP nieobsługiwany","Fullscreen Not Supported":"Pełny ekran nieobsługiwany","Subtitle Offset":"Przesunięcie napisów","Auto playback at":"Automatyczne odtwarzanie za"}')},{}],an7cR:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Info o videu","Close":"Zavřít","Video Load Failed":"Nahrání videa selhalo","Volume":"Hlasitost","Play":"Přehrát","Pause":"Pozastavit","Rate":"Hodnocení","Mute":"Ztlumit","Video Flip":"Otočit video","Horizontal":"Horizontálně","Vertical":"Vertikálně","Reconnect":"Opětovné připojení","Hide Subtitle":"Skrýt titulky","Show Subtitle":"Ukázat titulky","Show Setting":"Zobrazit nastavení","Hide Setting":"Skrýt nastavení","Screenshot":"Snímek obrazovky","Play Speed":"Rychlost přehrávání","Aspect Ratio":"Poměr stran","Default":"Výchozí","Normal":"Normální","Open":"Otevřít","Switch Video":"Přepnout video","Switch Subtitle":"Přepnout titulky","Fullscreen":"Celá obrazovka","Exit Fullscreen":"Opustit režim celé obrazovky","Web Fullscreen":"Celá stránka","Exit Web Fullscreen":"Zavřít režim celé stránky","Mini Player":"Mini přehrávač","PIP Mode":"Režim PIP","Exit PIP Mode":"Opustit režim PIP","PIP Not Supported":"Režim PIP není podporován","Fullscreen Not Supported":"Režim celé obrazovky není podporován","Subtitle Offset":"Posun titulků","Auto playback at":"Automatické přehrávání za"}')},{}],fzROd:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("./urlMix"),n=i.interopDefault(o),s=e("./attrMix"),a=i.interopDefault(s),l=e("./playMix"),c=i.interopDefault(l),u=e("./pauseMix"),d=i.interopDefault(u),p=e("./toggleMix"),f=i.interopDefault(p),h=e("./seekMix"),m=i.interopDefault(h),g=e("./volumeMix"),v=i.interopDefault(g),y=e("./currentTimeMix"),b=i.interopDefault(y),x=e("./durationMix"),w=i.interopDefault(x),j=e("./switchMix"),k=i.interopDefault(j),S=e("./playbackRateMix"),M=i.interopDefault(S),I=e("./aspectRatioMix"),A=i.interopDefault(I),T=e("./screenshotMix"),R=i.interopDefault(T),E=e("./fullscreenMix"),O=i.interopDefault(E),D=e("./fullscreenWebMix"),z=i.interopDefault(D),L=e("./pipMix"),C=i.interopDefault(L),F=e("./loadedMix"),Z=i.interopDefault(F),P=e("./playedMix"),N=i.interopDefault(P),H=e("./playingMix"),W=i.interopDefault(H),V=e("./autoSizeMix"),U=i.interopDefault(V),Y=e("./rectMix"),G=i.interopDefault(Y),B=e("./flipMix"),q=i.interopDefault(B),J=e("./miniMix"),Q=i.interopDefault(J),X=e("./loopMix"),K=i.interopDefault(X),$=e("./posterMix"),_=i.interopDefault($),ee=e("./autoHeightMix"),te=i.interopDefault(ee),re=e("./themeMix"),ie=i.interopDefault(re),oe=e("./titleMix"),ne=i.interopDefault(oe),se=e("./normalSizeMix"),ae=i.interopDefault(se),le=e("./subtitleOffsetMix"),ce=i.interopDefault(le),ue=e("./optionInit"),de=i.interopDefault(ue),pe=e("./eventInit"),fe=i.interopDefault(pe);r.default=class{constructor(e){n.default(e),a.default(e),c.default(e),d.default(e),f.default(e),m.default(e),v.default(e),b.default(e),w.default(e),k.default(e),M.default(e),A.default(e),R.default(e),O.default(e),z.default(e),C.default(e),Z.default(e),N.default(e),W.default(e),U.default(e),G.default(e),q.default(e),Q.default(e),K.default(e),_.default(e),te.default(e),ie.default(e),ne.default(e),ae.default(e),ce.default(e),fe.default(e),de.default(e)}}},{"./urlMix":"cChak","./attrMix":"e6Qkm","./playMix":"1FNSV","./pauseMix":"aPHUd","./toggleMix":"joISC","./seekMix":"4wG3e","./volumeMix":"42Xo1","./currentTimeMix":"8Z3pM","./durationMix":"hpnJy","./switchMix":"aCsa8","./playbackRateMix":"61TVa","./aspectRatioMix":"8BV9k","./screenshotMix":"bop8O","./fullscreenMix":"i63VK","./fullscreenWebMix":"bEKHA","./pipMix":"ibIuh","./loadedMix":"kwpxq","./playedMix":"e4Iws","./playingMix":"fueZP","./autoSizeMix":"l6TMg","./rectMix":"6URTt","./flipMix":"joth7","./miniMix":"durkk","./loopMix":"5EZwI","./posterMix":"22WMt","./autoHeightMix":"8pdNr","./themeMix":"eADqm","./titleMix":"8T9U6","./subtitleOffsetMix":"8CMLG","./optionInit":"aqLU7","./eventInit":"59ETf","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2","./normalSizeMix":"iEQHG"}],cChak:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,template:{$video:r}}=e;i.def(e,"url",{get:()=>r.currentSrc,async set(o){const n=t.type||i.getExt(o),s=t.customType[n];n&&s?(await i.sleep(),e.loading.show=!0,s.call(e,r,o,e)):(e.url&&e.url!==o&&e.once("video:canplay",(()=>{e.isReady&&e.emit("restart")})),r.src=o,e.option.url=o,e.emit("url",o))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],e6Qkm:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$video:t}}=e;i.def(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1FNSV":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:o,constructor:{instances:n},template:{$video:s}}=e;i.def(e,"play",{value(){const i=s.play();if(i&&i.then&&i.then().catch((e=>{throw r.show=e,e})),o.mutex)for(let t=0;te.playing?e.pause():e.play()})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4wG3e":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{notice:t}=e;i.def(e,"seek",{set(r){e.currentTime=r,e.emit("seek",e.currentTime),e.duration&&(t.show=`${i.secondToTime(e.currentTime)} / ${i.secondToTime(e.duration)}`)}}),i.def(e,"forward",{set(t){e.seek=e.currentTime+t}}),i.def(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"42Xo1":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:o,storage:n}=e;i.def(e,"volume",{get:()=>t.volume||0,set:s=>{t.volume=i.clamp(s,0,1),o.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&n.set("volume",t.volume),e.emit("volume",t.volume)}}),i.def(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("volume",t.volume)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8Z3pM":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{$video:t}=e.template;i.def(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{r=parseFloat(r),Number.isNaN(r)||(t.currentTime=i.clamp(r,0,e.duration))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],hpnJy:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){i.def(e,"duration",{get:()=>{const{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aCsa8:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,option:r,notice:o}=e;function n(i,n,s){return new Promise((a=>{if(i===e.url)return a(i);const{playing:l}=e;e.pause(),URL.revokeObjectURL(e.url),e.url=i,e.once("video:canplay",(()=>{e.playbackRate=!1,e.aspectRatio=!1,e.flip="normal",e.autoSize=r.autoSize,e.currentTime=s,e.notice.show="",l&&e.play(),n&&(o.show=`${t.get("Switch Video")}: ${n}`),e.emit("switch",i),a(i)}))}))}i.def(e,"switchQuality",{value:(t,r)=>n(t,r,e.currentTime)}),i.def(e,"switchUrl",{value:(e,t)=>n(e,t,0)})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"61TVa":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:o}=e;i.def(e,"playbackRate",{get:()=>t.playbackRate,set(n){if(n){if(n===t.playbackRate)return;const s=[.25,.5,.75,1,1.25,1.5,1.75,2,3,4];i.errorHandle(s.includes(n),`'playbackRate' only accept ${s.toString()} as parameters`),t.playbackRate=n,o.show=`${r.get("Rate")}: ${1===n?r.get("Normal"):`${n}x`}`,e.emit("playbackRate",n)}else e.playbackRate=1,e.emit("playbackRate")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8BV9k":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$video:t,$player:r},i18n:o,notice:n}=e;i.def(e,"aspectRatio",{get:()=>r.dataset.aspectRatio||"default",set(s){s||(s="default");const a=["default","4:3","16:9"];if(i.errorHandle(a.includes(s),`'aspectRatio' only accept ${a.toString()} as parameters`),"default"===s)i.setStyle(t,"width",null),i.setStyle(t,"height",null),i.setStyle(t,"padding",null),delete r.dataset.aspectRatio;else{const e=s.split(":").map(Number),{videoWidth:o,videoHeight:n}=t,{clientWidth:a,clientHeight:l}=r,c=o/n,u=e[0]/e[1];if(c>u){const e=u*n/o;i.setStyle(t,"width",100*e+"%"),i.setStyle(t,"height","100%"),i.setStyle(t,"padding",`0 ${(a-a*e)/2}px`)}else{const e=o/u/n;i.setStyle(t,"width","100%"),i.setStyle(t,"height",100*e+"%"),i.setStyle(t,"padding",(l-l*e)/2+"px 0")}r.dataset.aspectRatio=s}n.show=`${o.get("Aspect Ratio")}: ${"default"===s?o.get("Default"):s}`,e.emit("aspectRatio",s)}}),i.def(e,"aspectRatioReset",{set(t){if(t){const{aspectRatio:t}=e;e.aspectRatio=t}}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bop8O:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,notice:r,template:{$video:o}}=e,n=document.createElement("canvas");i.def(e,"getDataURL",{value:()=>new Promise(((e,t)=>{try{n.width=o.videoWidth,n.height=o.videoHeight,n.getContext("2d").drawImage(o,0,0),e(n.toDataURL("image/png"))}catch(e){r.show=e,t(e)}}))}),i.def(e,"getBlobUrl",{value:()=>new Promise(((e,t)=>{try{n.width=o.videoWidth,n.height=o.videoHeight,n.getContext("2d").drawImage(o,0,0),n.toBlob((t=>{e(URL.createObjectURL(t))}))}catch(e){r.show=e,t(e)}}))}),i.def(e,"screenshot",{value:async()=>{const r=await e.getDataURL();return i.download(r,`${t.title||"artplayer"}_${i.secondToTime(o.currentTime)}.png`),e.emit("screenshot",r),r}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],i63VK:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("../libs/screenfull"),n=i.interopDefault(o),s=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:i,$player:o}}=e,a=n.default();e.once("video:loadedmetadata",(()=>{var n;a.isEnabled?(n=e,a.on("change",(()=>n.emit("fullscreen",a.isFullscreen))),s.def(n,"fullscreen",{get:()=>a.isFullscreen,async set(e){e?(n.normalSize="fullscreen",n.aspectRatioReset=!0,n.autoSize=!1,await a.request(o),s.addClass(o,"art-fullscreen"),n.emit("resize"),n.emit("fullscreen",!0),r.show=""):(n.aspectRatioReset=!0,n.autoSize=n.option.autoSize,await a.exit(),s.removeClass(o,"art-fullscreen"),n.emit("resize"),n.emit("fullscreen"),r.show="")}})):document.fullscreenEnabled||i.webkitSupportsFullscreen?(e=>{s.def(e,"fullscreen",{get:()=>i.webkitDisplayingFullscreen,set(t){t?(e.normalSize="fullscreen",i.webkitEnterFullscreen(),e.emit("fullscreen",!0),r.show=""):(i.webkitExitFullscreen(),e.emit("fullscreen"),r.show="")}})})(e):s.def(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),s.def(e,"fullscreen",s.get(e,"fullscreen"))}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2","../libs/screenfull":"aPwar"}],aPwar:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(){const e=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],t=(()=>{const t=e[0],r={};for(const i of e)if(i[1]in document){for(const[e,o]of i.entries())r[t[e]]=o;return r}return!1})(),r={change:t.fullscreenchange,error:t.fullscreenerror};let i={request:(e=document.documentElement,r)=>new Promise(((o,n)=>{const s=()=>{i.off("change",s),o()};i.on("change",s);const a=e[t.requestFullscreen](r);a instanceof Promise&&a.then(s).catch(n)})),exit:()=>new Promise(((e,r)=>{if(!i.isFullscreen)return void e();const o=()=>{i.off("change",o),e()};i.on("change",o);const n=document[t.exitFullscreen]();n instanceof Promise&&n.then(o).catch(r)})),toggle:(e,t)=>i.isFullscreen?i.exit():i.request(e,t),onchange(e){i.on("change",e)},onerror(e){i.on("error",e)},on(e,t){const i=r[e];i&&document.addEventListener(i,t,!1)},off(e,t){const i=r[e];i&&document.removeEventListener(i,t,!1)},raw:t};return Object.defineProperties(i,{isFullscreen:{get:()=>Boolean(document[t.fullscreenElement])},element:{enumerable:!0,get:()=>document[t.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[t.fullscreenEnabled])}}),t||(i={isEnabled:!1}),i}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bEKHA:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{notice:t,template:{$player:r}}=e;i.def(e,"fullscreenWeb",{get:()=>i.hasClass(r,"art-fullscreen-web"),set(o){o?(e.normalSize="fullscreenWeb",i.addClass(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=!1,e.emit("resize"),e.emit("fullscreenWeb",!0),t.show=""):(i.removeClass(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=e.option.autoSize,e.emit("resize"),e.emit("fullscreenWeb"),t.show="")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ibIuh:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:o}}=e;document.pictureInPictureEnabled?function(e){const{template:{$video:t},events:{proxy:r},notice:o}=e;t.disablePictureInPicture=!1,i.def(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.normalSize="pip",t.requestPictureInPicture().catch((e=>{throw o.show=e,e}))):document.exitPictureInPicture().catch((e=>{throw o.show=e,e}))}}),r(t,"enterpictureinpicture",(()=>{e.emit("pip",!0)})),r(t,"leavepictureinpicture",(()=>{e.emit("pip")}))}(e):o.webkitSupportsPresentationMode?function(e){const{$video:t}=e.template;t.webkitSetPresentationMode("inline"),i.def(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.normalSize="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip"))}})}(e):i.def(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],kwpxq:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{$video:t}=e.template;i.def(e,"loaded",{get:()=>e.loadedTime/t.duration}),i.def(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],e4Iws:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){i.def(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fueZP:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{$video:t}=e.template;i.def(e,"playing",{get:()=>!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],l6TMg:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{$container:t,$player:r,$video:o}=e.template;i.def(e,"autoSize",{get:()=>i.hasClass(t,"art-auto-size"),set(n){if(n){const{videoWidth:n,videoHeight:s}=o,{width:a,height:l}=t.getBoundingClientRect(),c=n/s,u=a/l;if(i.addClass(t,"art-auto-size"),u>c){const e=l*c/a*100;i.setStyle(r,"width",`${e}%`),i.setStyle(r,"height","100%")}else{const e=a/c/l*100;i.setStyle(r,"width","100%"),i.setStyle(r,"height",`${e}%`)}e.emit("autoSize",{width:e.width,height:e.height})}else i.removeClass(t,"art-auto-size"),i.setStyle(r,"width",null),i.setStyle(r,"height",null),e.emit("autoSize")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"6URTt":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){i.def(e,"rect",{get:()=>e.template.$player.getBoundingClientRect()});const t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[o]})}i.def(e,"x",{get:()=>e.left+window.pageXOffset}),i.def(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],joth7:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$player:t},i18n:r,notice:o}=e;i.def(e,"flip",{get:()=>t.dataset.flip||"normal",set(n){n||(n="normal");const s=["normal","horizontal","vertical"];i.errorHandle(s.includes(n),`'flip' only accept ${s.toString()} as parameters`),"normal"===n?delete t.dataset.flip:(e.rotate=!1,t.dataset.flip=n);const a=n.replace(n[0],n[0].toUpperCase());o.show=`${r.get("Video Flip")}: ${r.get(a)}`,e.emit("flip",n)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],durkk:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,option:r,storage:o,events:{proxy:n},template:{$player:s,$miniClose:a,$miniTitle:l,$miniHeader:c}}=e;let u="",d=!1,p=0,f=0,h=0,m=0;n(c,"mousedown",(t=>{d=!0,p=t.pageX,f=t.pageY,h=e.left,m=e.top})),n(document,"mousemove",(e=>{if(d){i.addClass(s,"art-is-dragging");const t=m+e.pageY-f,r=h+e.pageX-p;i.setStyle(s,"top",`${t}px`),i.setStyle(s,"left",`${r}px`),o.set("top",t),o.set("left",r)}})),n(document,"mouseup",(()=>{d=!1,i.removeClass(s,"art-is-dragging")})),n(a,"click",(()=>{e.mini=!1,d=!1,i.removeClass(s,"art-is-dragging")})),i.append(l,r.title||t.get("Mini Player")),i.def(e,"mini",{get:()=>i.hasClass(s,"art-mini"),set(t){if(t){e.normalSize="mini",e.autoSize=!1,u=s.style.cssText,i.addClass(s,"art-mini");const t=o.get("top"),r=o.get("left");if(t&&r)i.setStyle(s,"top",`${t}px`),i.setStyle(s,"left",`${r}px`),i.isInViewport(c)||(o.del("top"),o.del("left"),e.mini=!0);else{const t=document.body,r=t.clientHeight-e.height-50,n=t.clientWidth-e.width-50;o.set("top",r),o.set("left",n),i.setStyle(s,"top",`${r}px`),i.setStyle(s,"left",`${n}px`)}e.aspectRatio=!1,e.playbackRate=!1,e.notice.show="",e.emit("mini",!0)}else s.style.cssText=u,i.removeClass(s,"art-mini"),i.setStyle(s,"top",null),i.setStyle(s,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=r.autoSize,e.notice.show="",e.emit("mini")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5EZwI":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){let t=[];i.def(e,"loop",{get:()=>t,set:r=>{if(Array.isArray(r)&&"number"==typeof r[0]&&"number"==typeof r[1]){const o=i.clamp(r[0],0,Math.min(r[1],e.duration)),n=i.clamp(r[1],o,e.duration);n-o>=1?(t=[o,n],e.emit("loop",t)):(t=[],e.emit("loop"))}else t=[],e.emit("loop")}}),e.on("video:timeupdate",(()=>{t.length&&(e.currentTimet[1])&&(e.seek=t[0])}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"22WMt":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,template:{$poster:r}}=e;i.def(e,"poster",{get:()=>t.poster,set(e){t.poster=e,i.setStyle(r,"backgroundImage",`url(${e})`)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8pdNr":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,template:{$container:r,$video:o}}=e,n=r.style.height;i.def(e,"autoHeight",{get:()=>i.hasClass(r,"art-auto-height"),set(s){if(s){const{clientWidth:n}=r,{videoHeight:s,videoWidth:a}=o,l=s*(n/a);i.setStyle(r,"height",l+"px"),i.addClass(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight",l)}else i.setStyle(r,"height",n),i.removeClass(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],eADqm:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,template:{$player:r}}=e;i.def(e,"theme",{get:()=>getComputedStyle(r).getPropertyValue("--theme"),set(e){t.theme=e,r.style.setProperty("--theme",e)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8T9U6":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){i.def(e,"title",{get:()=>e.option.title,set(t){e.option.title=t}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8CMLG":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{clamp:t}=e.constructor.utils,{notice:r,template:o,i18n:n}=e;let s=0,a=[];e.on("subtitle:switch",(()=>{a=[]})),i.def(e,"subtitleOffset",{get:()=>s,set(i){if(o.$track&&o.$track.track){const l=Array.from(o.$track.track.cues);s=t(i,-5,5);for(let r=0;r{e.attr(r,t.moreVideoAttr[r])})),t.muted&&(e.muted=t.muted),t.volume&&(o.volume=i.clamp(t.volume,0,1));const s=r.get("volume");"number"==typeof s&&(o.volume=i.clamp(s,0,1)),t.poster&&i.setStyle(n,"backgroundImage",`url(${t.poster})`),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0),t.theme&&(e.theme=t.theme),0===t.ads.length&&(e.url=t.url)}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"59ETf":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("../config"),n=i.interopDefault(o),s=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:i,constructor:o,events:{proxy:a},template:{$player:l,$video:c,$poster:u}}=e;let d=0;for(let t=0;t{e.emit(`video:${t.type}`,t)}));e.on("video:canplay",(()=>{d=0,e.loading.show=!1})),e.once("video:canplay",(()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")})),e.on("video:ended",(()=>{i.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)})),e.on("video:error",(async()=>{d{e.autoSize=i.autoSize,s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)})),e.on("video:loadstart",(()=>{e.loading.show=!0})),e.on("video:pause",(()=>{e.controls.show=!0,e.mask.show=!0})),e.on("video:play",(()=>{e.mask.show=!1,s.setStyle(u,"display","none")})),e.on("video:playing",(()=>{e.mask.show=!1})),e.on("video:seeked",(()=>{e.loading.show=!1})),e.on("video:seeking",(()=>{e.loading.show=!0})),e.on("video:timeupdate",(()=>{e.mask.show=!1})),e.on("video:waiting",(()=>{e.loading.show=!0}))}},{"../config":"eksZR","../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iEQHG:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const t=["mini","pip","fullscreen","fullscreenWeb"];i.def(e,"normalSize",{get:()=>t.every((t=>!e[t])),set(r){t.filter((e=>e!==r)).forEach((t=>{e[t]&&(e[t]=!1)}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],kJ9J9:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("../utils"),n=e("../utils/component"),s=i.interopDefault(n),a=e("./fullscreen"),l=i.interopDefault(a),c=e("./fullscreenWeb"),u=i.interopDefault(c),d=e("./pip"),p=i.interopDefault(d),f=e("./playAndPause"),h=i.interopDefault(f),m=e("./progress"),g=i.interopDefault(m),v=e("./subtitle"),y=i.interopDefault(v),b=e("./time"),x=i.interopDefault(b),w=e("./volume"),j=i.interopDefault(w),k=e("./setting"),S=i.interopDefault(k),M=e("./thumbnails"),I=i.interopDefault(M),A=e("./screenshot"),T=i.interopDefault(A),R=e("./quality"),E=i.interopDefault(R),O=e("./loop"),D=i.interopDefault(O);class z extends s.default{constructor(e){super(e),this.name="control";const{option:t,constructor:r,events:{proxy:i},template:{$player:n}}=e;let s=Date.now();i(n,["click","mousemove","touchstart","touchmove"],(()=>{this.show=!0,o.removeClass(n,"art-hide-cursor"),o.addClass(n,"art-hover"),s=Date.now()})),e.on("video:timeupdate",(()=>{e.playing&&this.show&&Date.now()-s>=r.CONTROL_HIDE_TIME&&(this.show=!1,o.addClass(n,"art-hide-cursor"),o.removeClass(n,"art-hover"))})),e.once("video:loadedmetadata",(()=>{this.add(g.default({name:"progress",disable:t.isLive,position:"top",index:10})),this.add(I.default({name:"thumbnails",disable:!t.thumbnails.url||t.isLive||o.isMobile,position:"top",index:20})),this.add(D.default({name:"loop",disable:!1,position:"top",index:30})),this.add(h.default({name:"playAndPause",disable:!1,position:"left",index:10})),this.add(j.default({name:"volume",disable:!1,position:"left",index:20})),this.add(x.default({name:"time",disable:t.isLive,position:"left",index:30})),this.add(E.default({name:"quality",disable:0===t.quality.length,position:"right",index:10})),this.add(T.default({name:"screenshot",disable:!t.screenshot||o.isMobile,position:"right",index:20})),this.add(y.default({name:"subtitle",disable:!t.subtitle.url,position:"right",index:30})),this.add(S.default({name:"setting",disable:!t.setting,position:"right",index:40})),this.add(p.default({name:"pip",disable:!t.pip,position:"right",index:50})),this.add(u.default({name:"fullscreenWeb",disable:!t.fullscreenWeb,position:"right",index:60})),this.add(l.default({name:"fullscreen",disable:!t.fullscreen,position:"right",index:70}));for(let e=0;eNumber(e.dataset.index)>=Number(i.dataset.index)));return u?u.insertAdjacentElement("beforebegin",i):o.append(this.$parent,i),t.html&&o.append(i,t.html),t.style&&o.setStyles(i,t.style),t.tooltip&&o.tooltip(i,t.tooltip),t.click&&this.art.events.proxy(i,"click",(e=>{e.preventDefault(),t.click.call(this.art,this,e)})),t.selector&&["left","right"].includes(t.position)&&this.selector(t,i),t.mounted&&t.mounted.call(this.art,i),1===i.childNodes.length&&3===i.childNodes[0].nodeType&&o.addClass(i,"art-control-onlyText"),l.def(this,r,{value:i}),i}selector(e,t){const{hover:r,proxy:i}=this.art.events;o.addClass(t,"art-control-selector");const n=document.createElement("div");o.addClass(n,"art-selector-value"),o.append(n,e.html),t.innerText="",o.append(t,n);const s=e.selector.map(((e,t)=>`
${e.html}
`)).join(""),a=document.createElement("div");o.addClass(a,"art-selector-list"),o.append(a,s),o.append(t,a);const l=()=>{const e=o.getStyle(t,"width")/2-o.getStyle(a,"width")/2;a.style.left=`${e}px`};r(t,l),i(a,"click",(async t=>{const r=(t.composedPath()||[]).find((e=>o.hasClass(e,"art-selector-item")));if(!r)return;o.inverseClass(r,"art-current");const i=Number(r.dataset.index),s=e.selector[i]||{};if(n.innerText=r.innerText,e.onSelect){const i=await e.onSelect.call(this.art,s,r,t);"string"!=typeof i&&"number"!=typeof i||(n.innerHTML=i)}l(),this.art.emit("selector",s,r)}))}}},{"./dom":"ff6Hs","option-validator":"hqjoJ","../scheme":"3vPoh","./property":"lMM6V","./error":"lDQPM","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],awkUw:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{const{events:{proxy:r},icons:o,i18n:n}=t,s=i.append(e,o.fullscreenOn),a=i.append(e,o.fullscreenOff);i.setStyle(a,"display","none"),r(e,"click",(()=>{t.fullscreen=!t.fullscreen})),t.on("fullscreen",(t=>{t?(i.tooltip(e,n.get("Exit Fullscreen")),i.setStyle(s,"display","none"),i.setStyle(a,"display","inline-flex")):(i.tooltip(e,n.get("Fullscreen")),i.setStyle(s,"display","inline-flex"),i.setStyle(a,"display","none"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3qoPe":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{const{events:{proxy:r},icons:o,i18n:n}=t,s=i.append(e,o.fullscreenWebOn),a=i.append(e,o.fullscreenWebOff);i.setStyle(a,"display","none"),r(e,"click",(()=>{t.fullscreenWeb=!t.fullscreenWeb})),t.on("fullscreenWeb",(t=>{t?(i.tooltip(e,n.get("Exit Web Fullscreen")),i.setStyle(s,"display","none"),i.setStyle(a,"display","inline-flex")):(i.tooltip(e,n.get("Web Fullscreen")),i.setStyle(s,"display","inline-flex"),i.setStyle(a,"display","none"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lFHYL:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{const{events:{proxy:r},icons:o,i18n:n}=t;i.append(e,o.pip),r(e,"click",(()=>{t.pip=!t.pip})),t.on("pip",(t=>{i.tooltip(e,n.get(t?"Exit PIP Mode":"PIP Mode"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],b8vU1:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const{events:{proxy:r},icons:o,i18n:n}=t,s=i.append(e,o.play),a=i.append(e,o.pause);function l(){i.setStyle(s,"display","flex"),i.setStyle(a,"display","none")}function c(){i.setStyle(s,"display","none"),i.setStyle(a,"display","flex")}i.tooltip(s,n.get("Play")),i.tooltip(a,n.get("Pause")),r(s,"click",(()=>{t.play()})),r(a,"click",(()=>{t.pause()})),t.playing?c():l(),t.on("video:playing",(()=>{c()})),t.on("video:pause",(()=>{l()}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],dRwzT:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"getPosFromEvent",(()=>n));var o=e("../utils");function n(e,t){const{$progress:r}=e.template,{left:i}=r.getBoundingClientRect(),n=t.pageX,s=o.clamp(n-i,0,r.clientWidth),a=s/r.clientWidth*e.duration;return{second:a,time:o.secondToTime(a),width:s,percentage:o.clamp(s/r.clientWidth,0,1)}}r.default=function(e){return t=>{const{icons:r,option:i,events:{proxy:s}}=t;return{...e,html:'
',mounted:e=>{let a=!1;const l=o.query(".art-progress-loaded",e),c=o.query(".art-progress-played",e),u=o.query(".art-progress-highlight",e),d=o.query(".art-progress-indicator",e),p=o.query(".art-progress-tip",e);o.setStyle(c,"backgroundColor","var(--theme)");let f=t.constructor.INDICATOR_SIZE;function h(e,t){"loaded"===e&&o.setStyle(l,"width",100*t+"%"),"played"===e&&(o.setStyle(c,"width",100*t+"%"),o.setStyle(d,"left",`calc(${100*t}% - ${f/2}px)`))}r.indicator?(f=t.constructor.INDICATOR_SIZE_ICON,o.append(d,r.indicator)):o.setStyles(d,{backgroundColor:"var(--theme)"}),o.isMobile&&(f=t.constructor.INDICATOR_SIZE_MOBILE,r.indicator&&(f=t.constructor.INDICATOR_SIZE_MOBILE_ICON)),o.setStyles(d,{left:`-${f/2}px`,width:`${f}px`,height:`${f}px`});for(let e=0;e`)}h("loaded",t.loaded),t.on("setBar",((e,t)=>{h(e,t)})),t.on("video:progress",(()=>{h("loaded",t.loaded)})),t.on("video:timeupdate",(()=>{h("played",t.played)})),t.on("video:ended",(()=>{h("played",1)})),o.isMobile||(s(e,"click",(e=>{if(e.target!==d){const{second:r,percentage:i}=n(t,e);h("played",i),t.seek=r}})),s(e,"mousemove",(r=>{o.setStyle(p,"display","block"),o.includeFromEvent(r,u)?function(r){const{width:i}=n(t,r),{text:s}=r.target.dataset;p.innerHTML=s;const a=p.clientWidth;i<=a/2?o.setStyle(p,"left",0):i>e.clientWidth-a/2?o.setStyle(p,"left",e.clientWidth-a+"px"):o.setStyle(p,"left",i-a/2+"px")}(r):function(r){const{width:i,time:s}=n(t,r);p.innerHTML=s;const a=p.clientWidth;i<=a/2?o.setStyle(p,"left",0):i>e.clientWidth-a/2?o.setStyle(p,"left",e.clientWidth-a+"px"):o.setStyle(p,"left",i-a/2+"px")}(r)})),s(e,"mouseout",(()=>{o.setStyle(p,"display","none")})),s(d,"mousedown",(()=>{a=!0})),s(document,"mousemove",(e=>{if(a){const{second:r,percentage:i}=n(t,e);h("played",i),t.seek=r}})),s(document,"mouseup",(()=>{a&&(a=!1)})))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3kkJ1":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Hide Subtitle"),mounted:e=>{const{events:{proxy:r},icons:o,i18n:n,subtitle:s}=t;i.append(e,o.subtitle),r(e,"click",(()=>{s.toggle=!0})),t.on("subtitle",(t=>{i.tooltip(e,n.get(t?"Hide Subtitle":"Show Subtitle"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ltYI1:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,style:{cursor:"auto"},mounted:e=>{function r(){const r=`${i.secondToTime(t.currentTime)} / ${i.secondToTime(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();const o=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;e({...e,mounted:e=>{const{events:{proxy:r},icons:o,i18n:n}=t;let s=!1;const a=t.constructor.VOLUME_PANEL_WIDTH,l=t.constructor.VOLUME_HANDLE_WIDTH,c=i.append(e,o.volume),u=i.append(e,o.volumeClose),d=i.append(e,'
'),p=i.append(d,'
');function f(e){const{left:t}=d.getBoundingClientRect();return i.clamp(e.pageX-t-l/2,0,a-l/2)/(a-l)}function h(e=.7){if(t.muted||0===e)i.setStyle(c,"display","none"),i.setStyle(u,"display","flex"),i.setStyle(p,"left","0");else{const t=(a-l)*e;i.setStyle(c,"display","flex"),i.setStyle(u,"display","none"),i.setStyle(p,"left",`${t}px`)}}i.tooltip(c,n.get("Mute")),i.setStyle(u,"display","none"),i.isMobile&&i.setStyle(d,"display","none"),h(t.volume),t.on("video:volumechange",(()=>{h(t.volume)})),r(c,"click",(()=>{t.muted=!0})),r(u,"click",(()=>{t.muted=!1})),r(d,"click",(e=>{t.muted=!1,t.volume=f(e)})),r(p,"mousedown",(()=>{s=!0})),r(e,"mousemove",(e=>{s&&(t.muted=!1,t.volume=f(e))})),r(document,"mouseup",(()=>{s&&(s=!1)}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lX5UX:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{const{events:{proxy:r},icons:o,i18n:n,setting:s}=t;i.append(e,o.setting),r(e,"click",(()=>{s.toggle=!0})),t.on("setting",(t=>{i.tooltip(e,n.get(t?"Hide Setting":"Show Setting"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lUoGG:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils"),o=e("./progress");r.default=function(e){return t=>({...e,mounted:e=>{const{option:r,template:{$progress:n,$video:s},events:{proxy:a,loadImg:l}}=t;let c=null,u=!1,d=!1;a(n,"mousemove",(async a=>{if(!u){u=!0;const e=await l(r.thumbnails.url);c=e,d=!0}d&&(i.setStyle(e,"display","block"),function(a){const{width:l}=o.getPosFromEvent(t,a),{url:u,number:d,column:p}=r.thumbnails,f=c.naturalWidth/p,h=f/(s.videoWidth/s.videoHeight),m=n.clientWidth/d,g=Math.floor(l/m),v=Math.ceil(g/p)-1,y=g%p||p-1;i.setStyle(e,"backgroundImage",`url(${u})`),i.setStyle(e,"height",`${h}px`),i.setStyle(e,"width",`${f}px`),i.setStyle(e,"backgroundPosition",`-${y*f}px -${v*h}px`),l<=f/2?i.setStyle(e,"left",0):l>n.clientWidth-f/2?i.setStyle(e,"left",n.clientWidth-f+"px"):i.setStyle(e,"left",l-f/2+"px")}(a))})),a(n,"mouseout",(()=>{i.setStyle(e,"display","none")}))}})}},{"../utils":"geSvU","./progress":"dRwzT","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],jvdQ0:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{const{events:{proxy:r},icons:o}=t;i.append(e,o.screenshot),r(e,"click",(()=>{t.screenshot()}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],k9pKK:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>{const r=t.option.quality,i=r.find((e=>e.default))||r[0];return{...e,html:i?i.html:"",selector:r,onSelect(e){t.switchQuality(e.url,e.html)}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aE690:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const r=i.append(e,''),o=i.append(e,'');t.on("loop",(n=>{n?(i.setStyle(e,"display","block"),i.setStyle(r,"left",`calc(${n[0]/t.duration*100}% - ${r.clientWidth}px)`),i.setStyle(o,"left",n[1]/t.duration*100+"%")):i.setStyle(e,"display","none")}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7rh9q":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("../utils"),n=e("../utils/component"),s=i.interopDefault(n),a=e("./playbackRate"),l=i.interopDefault(a),c=e("./aspectRatio"),u=i.interopDefault(c),d=e("./flip"),p=i.interopDefault(d),f=e("./info"),h=i.interopDefault(f),m=e("./version"),g=i.interopDefault(m),v=e("./close"),y=i.interopDefault(v);class b extends s.default{constructor(e){super(e),this.art=e,this.name="contextmenu",this.$parent=e.template.$contextmenu,e.once("video:loadedmetadata",(()=>{o.isMobile||this.init()}))}init(){const{option:e,template:{$player:t,$contextmenu:r},events:{proxy:i}}=this.art;this.add(l.default({disable:!e.playbackRate,name:"playbackRate",index:10})),this.add(u.default({disable:!e.aspectRatio,name:"aspectRatio",index:20})),this.add(p.default({disable:!e.flip,name:"flip",index:30})),this.add(h.default({disable:!1,name:"info",index:40})),this.add(g.default({disable:!1,name:"version",index:50})),this.add(y.default({disable:!1,name:"close",index:60}));for(let t=0;t{e.preventDefault(),this.show=!0;const i=e.clientX,n=e.clientY,{height:s,width:a,left:l,top:c}=t.getBoundingClientRect(),{height:u,width:d}=r.getBoundingClientRect();let p=i-l,f=n-c;i+d>l+a&&(p=a-d),n+u>c+s&&(f=s-u),o.setStyles(r,{top:`${f}px`,left:`${p}px`})})),i(t,"click",(e=>{o.includeFromEvent(e,r)||(this.show=!1)})),this.art.on("blur",(()=>{this.show=!1}))}}r.default=b},{"../utils":"geSvU","../utils/component":"kPHYl","./playbackRate":"9P3rd","./aspectRatio":"3OqVf","./flip":"iMg4Y","./info":"9FFXO","./version":"duhqU","./close":"k3lJQ","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9P3rd":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get("Play Speed")}:0.50.75${r.get("Normal")}1.251.52.0`,click:(e,r)=>{const{value:i}=r.target.dataset;i&&(t.playbackRate=Number(i),e.show=!1)},mounted:e=>{t.on("playbackRate",(t=>{const r=i.queryAll("span",e).find((e=>Number(e.dataset.value)===t));r&&i.inverseClass(r,"art-current")}))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3OqVf":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get("Aspect Ratio")}:${r.get("Default")}4:316:9`,click:(e,r)=>{const{value:i}=r.target.dataset;i&&(t.aspectRatio=i,e.show=!1)},mounted:e=>{t.on("aspectRatio",(t=>{const r=i.queryAll("span",e).find((e=>e.dataset.value===t));r&&i.inverseClass(r,"art-current")}))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iMg4Y:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get("Video Flip")}:${r.get("Normal")}${r.get("Horizontal")}${r.get("Vertical")}`,click:(e,r)=>{const{value:i}=r.target.dataset;i&&(t.flip=i,e.show=!1)},mounted:e=>{t.on("flip",(t=>{const r=i.queryAll("span",e).find((e=>e.dataset.value===t));r&&i.inverseClass(r,"art-current")}))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9FFXO":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],duhqU:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return{...e,html:'ArtPlayer 4.3.23'}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],k3lJQ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],c896w:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("./utils"),n=e("./utils/component"),s=i.interopDefault(n);class a extends s.default{constructor(e){super(e),this.name="info",e.once("video:loadedmetadata",(()=>{o.isMobile||this.init()}))}init(){const{constructor:e,events:{proxy:t},template:{$infoPanel:r,$infoClose:i,$video:n}}=this.art;t(i,"click",(()=>{this.show=!1}));let s=null;const a=o.queryAll("[data-video]",r)||[];this.art.on("destroy",(()=>{clearTimeout(s)})),function t(){for(let e=0;e{this.init(e.option.subtitle)}))}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video.textTracks[0]}get activeCue(){return this.textTrack.activeCues[0]}style(e,t){const{$subtitle:r}=this.art.template;return"object"==typeof e?o.setStyles(r,e):o.setStyle(r,e,t)}update(){const{$subtitle:e}=this.art.template;e.innerHTML="",this.activeCue&&(e.innerHTML=this.activeCue.text.split(/\r?\n/).map((e=>`

${o.escape(e)}

`)).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}async switch(e,t={}){const{i18n:r,notice:i,option:o}=this.art,n={...o.subtitle,...t,url:e},s=await this.init(n);return t.name&&(i.show=`${r.get("Switch Subtitle")}: ${t.name}`),s}init(e){if(l.default(e,u.default.subtitle),!e.url)return;const{notice:t,events:{proxy:r},template:{$subtitle:i,$video:n,$track:s}}=this.art;if(!s){const e=document.createElement("track");e.default=!0,e.kind="metadata",n.appendChild(e),this.art.template.$track=e,r(this.textTrack,"cuechange",this.update.bind(this))}return this.style(e.style),o.errorHandle(window.fetch,"fetch not support"),fetch(e.url).then((e=>e.arrayBuffer())).then((t=>{o.errorHandle(window.TextDecoder,"TextDecoder not support");const r=new TextDecoder(e.encoding).decode(t);switch(this.art.emit("subtitleLoad",e.url),e.type||o.getExt(e.url)){case"srt":return o.vttToBlob(o.srtToVtt(r));case"ass":return o.vttToBlob(o.assToVtt(r));case"vtt":return o.vttToBlob(r);default:return e.url}})).then((e=>(i.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.art.template.$track.src=e,this.art.emit("subtitleSwitch",e)),e))).catch((e=>{throw t.show=e,e}))}}r.default=d},{"./utils":"geSvU","./utils/component":"kPHYl","option-validator":"hqjoJ","./scheme":"3vPoh","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j2hlX:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("../utils/error"),n=e("./clickInit"),s=i.interopDefault(n),a=e("./hoverInit"),l=i.interopDefault(a),c=e("./mousemoveInit"),u=i.interopDefault(c),d=e("./resizeInit"),p=i.interopDefault(d),f=e("./gestureInit"),h=i.interopDefault(f),m=e("./viewInit"),g=i.interopDefault(m);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),e.whitelist.state&&e.once("video:loadedmetadata",(()=>{s.default(e,this),l.default(e,this),u.default(e,this),p.default(e,this),h.default(e,this),g.default(e,this)}))}proxy(e,t,r,i={}){if(Array.isArray(t))return t.map((t=>this.proxy(e,t,r,i)));e.addEventListener(t,r,i);const o=()=>e.removeEventListener(t,r,i);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}loadImg(e){return new Promise(((t,r)=>{let i;if(e instanceof HTMLImageElement)i=e;else{if("string"!=typeof e)return r(new o.ArtPlayerError("Unable to get Image"));i=new Image,i.src=e}if(i.complete)return t(i);this.proxy(i,"load",(()=>t(i))),this.proxy(i,"error",(()=>r(new o.ArtPlayerError(`Failed to load Image: ${i.src}`))))}))}destroy(){for(let e=0;e{i.includeFromEvent(t,o)?(e.isFocus=!0,e.emit("focus")):(e.isFocus=!1,e.emit("blur"))}));let s=0;t.proxy(n,"click",(()=>{const t=Date.now();t-s<=r.DB_CLICE_TIME?(e.emit("dblclick"),i.isMobile?e.toggle():e.fullscreen=!e.fullscreen):(e.emit("click"),i.isMobile||e.toggle()),s=t}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aoIIW:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e,t){const{$player:r}=e.template;t.hover(r,(()=>{i.addClass(r,"art-hover"),e.emit("hover",!0)}),(()=>{i.removeClass(r,"art-hover"),e.emit("hover")}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4WC5c":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){const{$player:r}=e.template;t.proxy(r,"mousemove",(t=>{e.emit("mousemove",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7fpan":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e,t){const{notice:r,option:o}=e,n=i.throttle((()=>{e.normalSize&&(e.autoSize=o.autoSize),e.aspectRatioReset=!0,r.show="",e.emit("resize")}),e.constructor.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],(()=>{n()})),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",(()=>{n()}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ixtiG:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e,t){if(i.isMobile&&!e.option.isLive){const{notice:r,plugins:o,template:{$video:n,$bottom:s,$controls:a}}=e;let l=!1,c=0,u=0,d=0;const p=t=>{if(1===t.touches.length){l=!0;const{clientX:r,clientY:i}=t.touches[0];c=r,u=i,d=e.currentTime}},f=t=>{if(1===t.touches.length&&l&&e.duration){const n=o.autoOrientation&&o.autoOrientation.state,{clientX:s,clientY:a}=t.touches[0],l=i.clamp((s-c)/e.width,-1,1),p=i.clamp((a-u)/e.height,-1,1),f=n?p:l,h=i.clamp(d+e.duration*f/2,0,e.duration);e.seek=h,e.emit("setBar","played",i.clamp(h/e.duration,0,1)),r.show=`${i.secondToTime(h)} / ${i.secondToTime(e.duration)}`}},h=()=>{l&&(c=0,u=0,d=0,l=!1)};t.proxy(s,"touchstart",(e=>{i.includeFromEvent(e,a)||p(e)})),t.proxy(s,"touchmove",f),t.proxy(n,"touchstart",p),t.proxy(n,"touchmove",f),t.proxy(document,"touchend",h)}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5WvmH":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e,t){const{option:r,constructor:o,template:{$container:n}}=e,s=i.throttle((()=>{e.emit("view",i.isInViewport(n,o.SCROLL_GAP))}),o.SCROLL_TIME);t.proxy(window,"scroll",(()=>{s()})),e.on("view",(t=>{r.autoMini&&(e.mini=!t)}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aTHWZ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.once("video:loadedmetadata",(()=>{e.option.hotkey&&!i.isMobile&&this.init()}))}init(){const{proxy:e}=this.art.events;this.add(27,(()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)})),this.add(32,(()=>{this.art.toggle()})),this.add(37,(()=>{this.art.backward=5})),this.add(38,(()=>{this.art.volume+=.1})),this.add(39,(()=>{this.art.forward=5})),this.add(40,(()=>{this.art.volume-=.1})),e(window,"keydown",(e=>{if(this.art.isFocus){const t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r){const t=this.keys[e.keyCode];if(t){e.preventDefault();for(let r=0;r{for(let e=0;e{o.innerText="",i.removeClass(r,"art-notice-show")}),t.NOTICE_TIME)):i.removeClass(r,"art-notice-show")}}},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iLfmB:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("./utils"),n=e("./utils/component"),s=i.interopDefault(n);class a extends s.default{constructor(e){super(e),this.name="mask";const{template:t,icons:r,events:i}=e;o.append(t.$state,r.state),i.proxy(t.$state,"click",(()=>e.play()))}}r.default=a},{"./utils":"geSvU","./utils/component":"kPHYl","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5lAmI":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("../utils"),n=e("bundle-text:./loading.svg"),s=i.interopDefault(n),a=e("bundle-text:./state.svg"),l=i.interopDefault(a),c=e("bundle-text:./check.svg"),u=i.interopDefault(c),d=e("bundle-text:./play.svg"),p=i.interopDefault(d),f=e("bundle-text:./pause.svg"),h=i.interopDefault(f),m=e("bundle-text:./volume.svg"),g=i.interopDefault(m),v=e("bundle-text:./volume-close.svg"),y=i.interopDefault(v),b=e("bundle-text:./subtitle.svg"),x=i.interopDefault(b),w=e("bundle-text:./screenshot.svg"),j=i.interopDefault(w),k=e("bundle-text:./setting.svg"),S=i.interopDefault(k),M=e("bundle-text:./arrow-left.svg"),I=i.interopDefault(M),A=e("bundle-text:./arrow-right.svg"),T=i.interopDefault(A),R=e("bundle-text:./playback-rate.svg"),E=i.interopDefault(R),O=e("bundle-text:./aspect-ratio.svg"),D=i.interopDefault(O),z=e("bundle-text:./config.svg"),L=i.interopDefault(z),C=e("bundle-text:./pip.svg"),F=i.interopDefault(C),Z=e("bundle-text:./lock.svg"),P=i.interopDefault(Z),N=e("bundle-text:./unlock.svg"),H=i.interopDefault(N),W=e("bundle-text:./fullscreen-off.svg"),V=i.interopDefault(W),U=e("bundle-text:./fullscreen-on.svg"),Y=i.interopDefault(U),G=e("bundle-text:./fullscreen-web-off.svg"),B=i.interopDefault(G),q=e("bundle-text:./fullscreen-web-on.svg"),J=i.interopDefault(q);r.default=class{constructor(e){const t={loading:s.default,state:l.default,play:p.default,pause:h.default,check:u.default,volume:g.default,volumeClose:y.default,subtitle:x.default,screenshot:j.default,setting:S.default,pip:F.default,arrowLeft:I.default,arrowRight:T.default,playbackRate:E.default,aspectRatio:D.default,config:L.default,lock:P.default,unlock:H.default,fullscreenOff:V.default,fullscreenOn:Y.default,fullscreenWebOff:B.default,fullscreenWebOn:J.default,...e.option.icons};Object.keys(t).forEach((e=>{o.def(this,e,{get:()=>{const r=document.createElement("i");return o.addClass(r,"art-icon"),o.addClass(r,`art-icon-${e}`),o.append(r,t[e]),r}})}))}}},{"../utils":"geSvU","bundle-text:./loading.svg":"hX0lQ","bundle-text:./state.svg":"01U3R","bundle-text:./check.svg":"9jaCP","bundle-text:./play.svg":"invok","bundle-text:./pause.svg":"68285","bundle-text:./volume.svg":"3zSKr","bundle-text:./volume-close.svg":"ft8Zf","bundle-text:./subtitle.svg":"8qaqV","bundle-text:./screenshot.svg":"dfLel","bundle-text:./setting.svg":"j8dnn","bundle-text:./arrow-left.svg":"fMoi9","bundle-text:./arrow-right.svg":"auIjA","bundle-text:./playback-rate.svg":"g3V1U","bundle-text:./aspect-ratio.svg":"3LQJt","bundle-text:./config.svg":"bcTkc","bundle-text:./pip.svg":"jDSoL","bundle-text:./lock.svg":"jqFLt","bundle-text:./unlock.svg":"5qYod","bundle-text:./fullscreen-off.svg":"25MvP","bundle-text:./fullscreen-on.svg":"6CCX4","bundle-text:./fullscreen-web-off.svg":"m9TwS","bundle-text:./fullscreen-web-on.svg":"iWJrW","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],hX0lQ:[function(e,t,r){t.exports=''},{}],"01U3R":[function(e,t,r){t.exports=''},{}],"9jaCP":[function(e,t,r){t.exports=''},{}],invok:[function(e,t,r){t.exports=''},{}],68285:[function(e,t,r){t.exports=''},{}],"3zSKr":[function(e,t,r){t.exports=''},{}],ft8Zf:[function(e,t,r){t.exports=''},{}],"8qaqV":[function(e,t,r){t.exports=''},{}],dfLel:[function(e,t,r){t.exports=''},{}],j8dnn:[function(e,t,r){t.exports=''},{}],fMoi9:[function(e,t,r){t.exports=''},{}],auIjA:[function(e,t,r){t.exports=''},{}],g3V1U:[function(e,t,r){t.exports=''},{}],"3LQJt":[function(e,t,r){t.exports=''},{}],bcTkc:[function(e,t,r){t.exports=''},{}],jDSoL:[function(e,t,r){t.exports=''},{}],jqFLt:[function(e,t,r){t.exports=''},{}],"5qYod":[function(e,t,r){t.exports=''},{}],"25MvP":[function(e,t,r){t.exports=''},{}],"6CCX4":[function(e,t,r){t.exports=''},{}],m9TwS:[function(e,t,r){t.exports=''},{}],iWJrW:[function(e,t,r){t.exports=''},{}],d5XKP:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("./flip"),n=i.interopDefault(o),s=e("./aspectRatio"),a=i.interopDefault(s),l=e("./playbackRate"),c=i.interopDefault(l),u=e("./subtitleOffset"),d=i.interopDefault(u),p=e("../utils/component"),f=i.interopDefault(p),h=e("../utils");function m(e,t,r){for(let i=0;i{t.playbackRate&&this.option.push(c.default(e)),t.aspectRatio&&this.option.push(a.default(e)),t.flip&&this.option.push(n.default(e)),t.subtitleOffset&&this.option.push(d.default(e));for(let e=0;e{this.show&&(this.show=!1,this.init(this.option))})),r(o,"click",(t=>{!this.show||h.includeFromEvent(t,e.controls.setting)||h.includeFromEvent(t,this.$parent)||(this.show=!1,this.init(this.option))})))}add(e){"function"==typeof e?this.option.push(e(this.art)):this.option.push(e),this.cache=new Map,this.events.forEach((e=>e())),this.events=[],this.$parent.innerHTML="",this.option=m(this.option),this.init(this.option)}creatHeader(e){const{icons:t,events:{proxy:r}}=this.art,i=document.createElement("div");h.addClass(i,"art-setting-item"),h.addClass(i,"art-setting-item-back");const o=h.append(i,'
'),n=document.createElement("div");h.addClass(n,"art-setting-item-left-icon"),h.append(n,t.arrowLeft),h.append(o,n),h.append(o,e._parentItem.html);const s=r(i,"click",(()=>{this.init(e._parentList)}));return this.events.push(s),i}creatItem(e){const{icons:t,events:{proxy:r}}=this.art,i=e.selector&&e.selector.length,o=document.createElement("div");h.addClass(o,"art-setting-item"),e.default&&h.addClass(o,"art-current");const n=h.append(o,'
'),s=h.append(o,'
'),a=document.createElement("div");h.addClass(a,"art-setting-item-left-icon"),h.append(a,i?e.icon||t.config:t.check),h.append(n,a),e._$icon=a,h.def(e,"icon",{get:()=>a.innerHTML,set(e){"string"!=typeof e&&"number"!=typeof e||(a.innerHTML=e)}});const l=document.createElement("div");if(h.addClass(l,"art-setting-item-left-text"),h.append(l,e.html||""),h.append(n,l),e._$html=l,h.def(e,"html",{get:()=>l.innerHTML,set(e){"string"!=typeof e&&"number"!=typeof e||(l.innerHTML=e)}}),i){const r=document.createElement("div");h.addClass(r,"art-setting-item-right-tooltip"),h.append(r,e.tooltip||""),h.append(s,r),e._$tooltip=r,h.def(e,"tooltip",{get:()=>r.innerHTML,set(e){"string"!=typeof e&&"number"!=typeof e||(r.innerHTML=e)}});const i=document.createElement("div");h.addClass(i,"art-setting-item-right-icon"),h.append(i,t.arrowRight),h.append(s,i)}const c=r(o,"click",(async t=>{if(i)this.init(e.selector,e.width);else if(h.inverseClass(o,"art-current"),e._parentList&&this.init(e._parentList),e._parentItem&&e._parentItem.onSelect){const r=await e._parentItem.onSelect.call(this.art,e,o,t);e._parentItem._$tooltip&&("string"!=typeof r&&"number"!=typeof r||(e._parentItem._$tooltip.innerHTML=r))}}));return this.events.push(c),o}init(e,t){const{constructor:r}=this.art;if(this.cache.has(e)){const t=this.cache.get(e);h.inverseClass(t,"art-current"),h.setStyle(this.$parent,"width",`${t.dataset.width}px`),h.setStyle(this.$parent,"height",`${t.dataset.height}px`)}else{const i=document.createElement("div");h.addClass(i,"art-setting-panel"),i.dataset.width=t||r.SETTING_WIDTH,i.dataset.height=e.length*r.SETTING_ITEM_HEIGHT,e[0]&&e[0]._parentItem&&(h.append(i,this.creatHeader(e[0])),i.dataset.height=Number(i.dataset.height)+r.SETTING_ITEM_HEIGHT);for(let t=0;te.dataset.value===o));s&&i.inverseClass(s,"art-current")}return{width:o.SETTING_ITEM_WIDTH,html:t.get("Video Flip"),tooltip:t.get(n[e.flip]),icon:r.config,selector:Object.keys(n).map((r=>({value:r,default:r===e.flip,html:t.get(n[r])}))),onSelect(t){e.flip=t.value},mounted:(t,r)=>{s(t,r._$tooltip,e.flip),e.on("flip",(()=>{s(t,r._$tooltip,e.flip)}))}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1gs5B":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:o}=e;function n(e){return"default"===e?t.get("Default"):e}function s(e,t,r){t&&(t.innerText=n(r));const o=i.queryAll(".art-setting-item",e).find((e=>e.dataset.value===r));o&&i.inverseClass(o,"art-current")}return{width:o.SETTING_ITEM_WIDTH,html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:n(e.aspectRatio),selector:["default","4:3","16:9"].map((t=>({value:t,default:t===e.aspectRatio,html:n(t)}))),onSelect(t){e.aspectRatio=t.value},mounted:(t,r)=>{s(t,r._$tooltip,e.aspectRatio),e.on("aspectRatio",(()=>{s(t,r._$tooltip,e.aspectRatio)}))}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j50mh:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:o}=e;function n(e){return 1===e?t.get("Normal"):e}function s(e,t,r){t&&(t.innerText=n(r));const o=i.queryAll(".art-setting-item",e).find((e=>Number(e.dataset.value)===r));o&&i.inverseClass(o,"art-current")}return{width:o.SETTING_ITEM_WIDTH,html:t.get("Play Speed"),tooltip:n(e.playbackRate),icon:r.playbackRate,selector:[.5,.75,1,1.25,1.5,2].map((t=>({value:t,default:t===e.playbackRate,html:n(t)}))),onSelect(t){e.playbackRate=t.value},mounted:(t,r)=>{s(t,r._$tooltip,e.playbackRate),e.on("playbackRate",(()=>{s(t,r._$tooltip,e.playbackRate)}))}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],i17b6:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:o}=e;function n(e){return 0===e?t.get("Normal"):e}function s(e,t,r){t&&(t.innerText=n(r));const o=i.queryAll(".art-setting-item",e).find((e=>Number(e.dataset.value)===r));o&&i.inverseClass(o,"art-current")}return{width:o.SETTING_ITEM_WIDTH,html:t.get("Subtitle Offset"),tooltip:n(e.subtitleOffset),icon:r.subtitle,selector:[-5,-4,-3,-2,-1,0,1,2,3,4,5].map((t=>({value:t,default:t===e.subtitleOffset,html:n(t)}))),onSelect(t){e.subtitleOffset=t.value},mounted:(t,r)=>{s(t,r._$tooltip,e.subtitleOffset),e.on("subtitleOffset",(()=>{s(t,r._$tooltip,e.subtitleOffset)}))}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5M8nN":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{const t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{const r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{const t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],jWfEd:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("../utils"),n=e("./miniProgressBar"),s=i.interopDefault(n),a=e("./autoOrientation"),l=i.interopDefault(a),c=e("./autoPlayback"),u=i.interopDefault(c),d=e("./fastForward"),p=i.interopDefault(d),f=e("./lock"),h=i.interopDefault(f);r.default=class{constructor(e){this.art=e,this.id=0;const{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&o.isMobile&&this.add(h.default),t.autoPlayback&&this.add(u.default),t.autoOrientation&&o.isMobile&&this.add(l.default),t.fastForward&&o.isMobile&&!t.isLive&&this.add(p.default);for(let e=0;e{e.layers.add({name:"miniProgressBar",mounted(t){e.on("destroy",(()=>{t.style.display="none"})),e.on("video:timeupdate",(()=>{t.style.width=100*e.played+"%"})),e.on("setBar",((e,r)=>{"played"===e&&(t.style.width=100*r+"%")}))}})})),{name:"miniProgressBar"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aPIVP:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,constructor:r,template:{$player:o,$video:n}}=e;return e.on("fullscreenWeb",(s=>{if(s){const{videoWidth:t,videoHeight:s}=n,{clientWidth:a,clientHeight:l}=document.documentElement;(t>s&&al)&&setTimeout((()=>{i.setStyle(o,"width",`${l}px`),i.setStyle(o,"height",`${a}px`),i.setStyle(o,"transform-origin","0 0"),i.setStyle(o,"transform",`rotate(90deg) translate(0, -${a}px)`),i.addClass(o,"art-auto-orientation"),e.emit("resize")}),r.MOBILE_AUTO_ORIENTATION_TIME)}else i.hasClass(o,"art-auto-orientation")&&(i.setStyle(o,"width",null),i.setStyle(o,"height",null),i.setStyle(o,"transform",null),i.setStyle(o,"transform-origin",null),i.removeClass(o,"art-auto-orientation"),e.aspectRatioReset=!0,e.autoSize=t.autoSize,e.notice.show="",e.emit("resize"))})),e.on("fullscreen",(async e=>{const t=screen.orientation.type;if(e){const{videoWidth:e,videoHeight:r}=n,{clientWidth:s,clientHeight:a}=document.documentElement;if(e>r&&sa){const e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),i.addClass(o,"art-auto-orientation-fullscreen")}}else i.hasClass(o,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),i.removeClass(o,"art-auto-orientation-fullscreen"))})),{name:"autoOrientation",get state(){return i.hasClass(o,"art-auto-orientation")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j87OI:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,storage:r,constructor:o,template:{$poster:n}}=e;return e.on("video:timeupdate",(()=>{const t=r.get("times")||{},i=Object.keys(t);i.length>o.AUTO_PLAYBACK_MAX&&delete t[i[0]],t[e.option.url]=e.currentTime,r.set("times",t)})),e.on("ready",(()=>{const o=(r.get("times")||{})[e.option.url];o&&(e.seek=o,i.setStyle(n,"display","none"),e.notice.show=`${t.get("Auto playback at")} ${i.secondToTime(o)}`)})),{name:"autoPlayback",get times(){return r.get("times")||{}},clear:()=>r.del("times")}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1VTki":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{constructor:t,events:{proxy:r},template:{$player:o,$video:n}}=e;let s=null,a=!1;const l=()=>{clearTimeout(s),a&&(a=!1,e.playbackRate=1,i.removeClass(o,"art-fast-forward"))};return r(n,"touchstart",(r=>{1===r.touches.length&&e.playing&&(s=setTimeout((()=>{a=!0,e.playbackRate=t.FAST_FORWARD_VALUE,i.addClass(o,"art-fast-forward")}),t.FAST_FORWARD_TIME))})),r(document,"touchmove",l),r(document,"touchend",l),{name:"fastForward",get state(){return i.hasClass(o,"art-fast-forward")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7BtoE":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{layers:t,icons:r,template:{$player:o}}=e;return t.add({name:"lock",mounted(t){const o=i.append(t,r.lock),n=i.append(t,r.unlock);i.setStyle(o,"display","none"),e.on("lock",(e=>{e?(i.setStyle(o,"display","inline-flex"),i.setStyle(n,"display","none")):(i.setStyle(o,"display","none"),i.setStyle(n,"display","inline-flex"))}))},click(){i.hasClass(o,"art-lock")?(i.removeClass(o,"art-lock"),e.emit("lock",!1)):(i.addClass(o,"art-lock"),e.emit("lock",!0))}}),{name:"lock",get state(){return i.hasClass(o,"art-lock")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aafSd:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(e){this.art=e,this.init()}get current(){return this.art.option.ads[this.index]}get prev(){return this.art.option.ads[this.index-1]}get next(){return this.art.option.ads[this.index+1]}init(){this.index=0,this.isEnd=!1,this.playing=!1,this.urlCache=this.art.option.url,this.current&&(this.playing=!0,this.play(this.current))}play(e={}){this.isEnd||(this.art.switchUrl(e.url),this.art.once("video:timeupdate",(()=>{this.art.emit("ads:start",e)})),this.art.once("video:ended",(()=>{const e=this.next;e?(this.index+=1,this.play(e)):this.end()})))}end(){this.isEnd||(this.isEnd=!0,this.playing=!1,this.art.option.url=this.urlCache,this.art.switchUrl(this.urlCache),this.art.emit("ads:end"))}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fkUkB:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var o=e("./config"),n=i.interopDefault(o),s=e("./utils");r.default=class{constructor(e){const{option:t,events:{proxy:r},template:{$video:i}}=e;for(let t=0;t{e.emit(`video:${t.type}`,t)}));Object.keys(t.moreVideoAttr).forEach((e=>{i[e]=t.moreVideoAttr[e]})),t.muted&&(i.muted=t.muted),t.volume&&(i.volume=s.clamp(t.volume,0,1)),t.poster&&(i.poster=t.poster),t.autoplay&&(i.autoplay=t.autoplay),t.playsInline&&(i.playsInline=!0,i["webkit-playsinline"]=!0);const o=t.type||s.getExt(t.url),a=t.customType[o];o&&a?(a(i,t.url,e),e.emit("customType",o)):(i.src=t.url,e.emit("url",i.src))}}},{"./config":"eksZR","./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}]},["6SN6P"])}},t={};function r(i){var o=t[i];if(void 0!==o)return o.exports;var n=t[i]={id:i,loaded:!1,exports:{}};return e[i](n,n.exports,r),n.loaded=!0,n.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";var e=r(755),t=r.n(e),i=function(){for(var e=["oTransform","msTransform","mozTransform","webkitTransform","transform"],t=document.createElement("div").style,r=0;r0&&l!==1/0?Math.ceil(l):1*!!n.strokeStyle,o.font=n.font,e.width=e.width||Math.max(1,Math.ceil(o.measureText(e.text).width)+2*l),e.height=e.height||Math.ceil(function(e,t){if(a[e])return a[e];var r=12,i=e.match(/(\d+(?:\.\d+)?)(px|%|em|rem)(?:\s*\/\s*(\d+(?:\.\d+)?)(px|%|em|rem)?)?/);if(i){var o=1*i[1]||10,n=i[2],s=1*i[3]||1.2,l=i[4];"%"===n&&(o*=t.container/100),"em"===n&&(o*=t.container),"rem"===n&&(o*=t.root),"px"===l&&(r=s),"%"===l&&(r=o*s/100),"em"===l&&(r=o*s),"rem"===l&&(r=t.root*s),void 0===l&&(r=o*s)}return a[e]=r,r}(n.font,t))+2*l,i.width=e.width*s,i.height=e.height*s,n)o[c]=n[c];var u=0;switch(n.textBaseline){case"top":case"hanging":u=l;break;case"middle":u=e.height>>1;break;default:u=e.height-l}return n.strokeStyle&&o.strokeText(e.text,l,u),o.fillText(e.text,l,u),i}function c(e){return 1*window.getComputedStyle(e,null).getPropertyValue("font-size").match(/(.+)px/)[1]}var u={name:"canvas",init:function(e){var t=document.createElement("canvas");return t.context=t.getContext("2d"),t._fontSize={root:c(document.getElementsByTagName("html")[0]),container:c(e)},t},clear:function(e,t){e.context.clearRect(0,0,e.width,e.height);for(var r=0;rn)return!0;var s=t._.duration+e.time-r,a=t._.width+o.width,l=t.media?o.time:o._utc,c=a*(r-l)*i/t._.duration,u=t._.width-c;return s>t._.duration*u/(t._.width+o.width)}for(var n=this._.space[e.mode],s=0,a=0,l=1;l=u){a=l;break}o(c,e)&&(s=l)}var d=n[s].range,p={range:d+e.height,time:this.media?e.time:e._utc,width:e.width,height:e.height};return n.splice(s+1,a-s-1,p),"bottom"===e.mode?this._.height-e.height-d%this._.height:d%(this._.height-e.height)}var p=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return setTimeout(e,50/3)},f=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||clearTimeout;function h(e,t,r){for(var i=0,o=0,n=e.length;o=e[i=o+n>>1][t]?o=i:n=i;return e[o]&&r=0;c--)a=this._.runningList[c],t-(l=this.media?a.time:a._utc)>this._.duration&&(n(this._.stage,a),this._.runningList.splice(c,1));for(var u=[];this._.position=t));)t-l>this._.duration||(this.media&&(a._utc=e-(this.media.currentTime-a.time)),u.push(a)),++this._.position;for(i(this._.stage,u),c=0;c>1),o(this._.stage,a)}});return this._.requestID=p((function e(){a.call(s),s._.requestID=p(e)})),this}function b(){return!this._.visible||this._.paused||(this._.paused=!0,f(this._.requestID),this._.requestID=0),this}function x(){if(!this.media)return this;this.clear(),v(this._.space);var e=h(this.comments,"time",this.media.currentTime);return this._.position=Math.max(0,e-1),this}function w(e){e.play=y.bind(this),e.pause=b.bind(this),e.seeking=x.bind(this),this.media.addEventListener("play",e.play),this.media.addEventListener("pause",e.pause),this.media.addEventListener("playing",e.play),this.media.addEventListener("waiting",e.pause),this.media.addEventListener("seeking",e.seeking)}function j(e){this.media.removeEventListener("play",e.play),this.media.removeEventListener("pause",e.pause),this.media.removeEventListener("playing",e.play),this.media.removeEventListener("waiting",e.pause),this.media.removeEventListener("seeking",e.seeking),e.play=null,e.pause=null,e.seeking=null}function k(e){this._={},this.container=e.container||document.createElement("div"),this.media=e.media,this._.visible=!0,this.engine=(e.engine||"DOM").toLowerCase(),this._.engine="canvas"===this.engine?u:n,this._.requestID=0,this._.speed=Math.max(0,e.speed)||144,this._.duration=4,this.comments=e.comments||[],this.comments.sort((function(e,t){return e.time-t.time}));for(var t=0;t",state:'',indicator:''}}),function e(){if(window.WebSocket){let r=new z({container:document.getElementsByClassName("art-danmuku")[0]});setInterval((function(){r.resize()}),1e3);var t=new WebSocket("ws://"+window.location.host+"/ws");t.onopen=function(){setInterval((function(){t.send("test")}),1e3)},t.onclose=function(){e()},t.onmessage=function(e){try{let t=JSON.parse(e.data);r.emit(t)}catch(t){console.log(t),console.log(e.data)}}}}()})()})(); +/*! For license information please see bundle.js.LICENSE.txt */ +(()=>{var e={755:(e,t,r)=>{e=r.nmd(e),function(t,i,n,s,o){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==r.g?r.g:{},l="function"==typeof a.parcelRequire4dc0&&a.parcelRequire4dc0,u=l.cache||{},d="function"==typeof e.require&&e.require.bind(e);function c(e,r){if(!u[e]){if(!t[e]){var i="function"==typeof a.parcelRequire4dc0&&a.parcelRequire4dc0;if(!r&&i)return i(e,!0);if(l)return l(e,!0);if(d&&"string"==typeof e)return d(e);var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}o.resolve=function(r){var i=t[e][1][r];return null!=i?i:r},o.cache={};var s=u[e]=new c.Module(e);t[e][0].call(s.exports,o,s,s.exports,this)}return u[e].exports;function o(e){var t=o.resolve(e);return!1===t?{}:c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=t,c.cache=u,c.parent=l,c.register=function(e,r){t[e]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return a.parcelRequire4dc0}}),a.parcelRequire4dc0=c;for(var h=0;ht.call(this))),re.push(this)}static get instances(){return re}static get version(){return"4.3.23"}static get env(){return"production"}static get build(){return"1651825715464"}static get config(){return p.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return a.default}static get kindOf(){return a.default.kindOf}static get html(){return y.default.html}static get option(){return{container:"#artplayer",url:"",poster:"",title:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,fastForward:!1,autoPlayback:!1,autoOrientation:!1,ads:[],layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,column:10},subtitle:{url:"",type:"",style:{},encoding:"utf-8"},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}destroy(e=!0){this.events.destroy(),this.template.destroy(e),re.splice(re.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}if(r.default=ie,ie.NOTICE_TIME=2e3,ie.SETTING_WIDTH=250,ie.SETTING_ITEM_WIDTH=200,ie.SETTING_ITEM_HEIGHT=35,ie.INDICATOR_SIZE=14,ie.INDICATOR_SIZE_ICON=16,ie.INDICATOR_SIZE_MOBILE=18,ie.INDICATOR_SIZE_MOBILE_ICON=20,ie.VOLUME_PANEL_WIDTH=60,ie.VOLUME_HANDLE_WIDTH=12,ie.RESIZE_TIME=500,ie.SCROLL_TIME=200,ie.SCROLL_GAP=50,ie.AUTO_PLAYBACK_MAX=10,ie.RECONNECT_TIME_MAX=5,ie.RECONNECT_SLEEP_TIME=1e3,ie.CONTROL_HIDE_TIME=3e3,ie.DB_CLICE_TIME=300,ie.MOBILE_AUTO_PLAYBACKRATE=3,ie.MOBILE_AUTO_PLAYBACKRATE_TIME=1e3,ie.MOBILE_AUTO_ORIENTATION_TIME=200,ie.INFO_LOOP_TIME=1e3,ie.FAST_FORWARD_VALUE=3,ie.FAST_FORWARD_TIME=1e3,"undefined"!=typeof document&&!document.getElementById("artplayer-style")){const e=document.createElement("style");e.id="artplayer-style",e.textContent=s.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.Artplayer=ie),console.log(`%c ArtPlayer %c ${ie.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},{"bundle-text:./style/index.less":"9EPUe","option-validator":"hqjoJ","./utils/emitter":"7pHuB","./utils":"geSvU","./scheme":"3vPoh","./config":"eksZR","./whitelist":"fCKwj","./template":"bqHdK","./i18n":"4O9ZY","./player":"fzROd","./control":"kJ9J9","./contextmenu":"7rh9q","./info":"c896w","./subtitle":"2hqso","./events":"j2hlX","./hotkey":"aTHWZ","./layer":"f2kxw","./loading":"bOs9w","./notice":"ic4th","./mask":"iLfmB","./icons":"5lAmI","./setting":"d5XKP","./storage":"5M8nN","./plugins":"jWfEd","./ads":"aafSd","./mobile":"fkUkB","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9EPUe":[function(e,t,r){t.exports='.art-video-player{z-index:20;width:100%;height:100%;zoom:1;color:#eee;text-align:left;direction:ltr;user-select:none;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#000;outline:0;margin:0 auto;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;display:flex;position:relative}.art-video-player *{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:5px;height:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter: initial) or (backdrop-filter: initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-video-player .art-video{z-index:10;width:100%;height:100%;cursor:pointer;background-color:#000;position:absolute;inset:0}.art-video-player .art-poster{z-index:11;width:100%;height:100%;user-select:none;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;width:100%;text-align:center;color:#fff;pointer-events:none;text-shadow:1px 0 1px #000,0 1px 1px #000,-1px 0 1px #000,0 -1px 1px #000,1px 1px 1px #000,-1px -1px 1px #000,1px -1px 1px #000,-1px 1px 1px #000;padding:0 20px;font-size:20px;display:none;position:absolute;bottom:10px}.art-video-player .art-subtitle p{word-break:break-all;height:fit-content;margin:5px 0 0;line-height:1.2}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{z-index:50;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-mask .art-state{width:60px;height:60px;opacity:.85;cursor:pointer;pointer-events:all;justify-content:center;align-items:center;display:flex;position:absolute;bottom:65px;right:30px}.art-video-player.art-mask-show .art-mask{display:flex}.art-video-player.art-mobile .art-state{position:static}.art-video-player .art-loading{z-index:70;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;height:100px;opacity:0;visibility:hidden;pointer-events:none;background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:space-between;padding:50px 10px 0;transition:all .2s ease-in-out;display:flex;position:absolute;bottom:0;left:0;right:0}.art-video-player .art-bottom .art-progress{z-index:0;pointer-events:auto;flex:1;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress{height:4px;cursor:pointer;flex-direction:row;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{height:50%;width:100%;background:#fff3;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;height:100%;width:0;background:#fff6;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;height:100%;width:0;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;height:100%;pointer-events:none;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{width:7px;height:100%;pointer-events:auto;background:#fff;display:inline-block;position:absolute;top:0;left:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{visibility:hidden;z-index:40;border-radius:50%;justify-content:center;align-items:center;transition:transform .1s ease-in-out;position:absolute;transform:scale(.1)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none;user-select:none}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;height:20px;color:#fff;text-align:center;white-space:nowrap;background:#000000b3;border-radius:3px;padding:0 5px;font-size:12px;font-weight:700;line-height:20px;display:none;position:absolute;top:-25px;left:0}.art-video-player .art-bottom .art-progress .art-control-thumbnails{pointer-events:none;background-color:#000000b3;display:none;position:absolute;bottom:8px;left:0}.art-video-player .art-bottom .art-progress .art-control-loop{width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point{width:2px;height:8px;background:#ffffffbf;position:absolute;top:-2px;left:0}.art-video-player .art-bottom .art-controls{z-index:1;pointer-events:auto;height:45px;justify-content:space-between;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:flex}.art-video-player .art-bottom .art-controls .art-controls-right{justify-content:flex-end}.art-video-player .art-bottom .art-controls .art-control{opacity:.9;min-height:36px;min-width:36px;text-align:center;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;font-size:12px;line-height:1;display:flex}.art-video-player .art-bottom .art-controls .art-control .art-icon{float:left;height:36px;width:36px;justify-content:center;align-items:center;display:flex}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{float:left;width:0;height:100%;transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);position:relative;overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{width:12px;height:12px;background:#fff;border-radius:12px;margin-top:-6px;position:absolute;top:50%;left:0}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{background:#fff;left:-54px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{background:#fff3;left:6px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{content:"";height:3px;width:60px;margin-top:-2px;display:block;position:absolute;top:50%}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{z-index:30;position:relative}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{width:100px;text-align:center;color:#fff;background:#000c;border-radius:3px;padding:5px 0;display:none;position:absolute;bottom:35px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;line-height:30px;overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:#ffffff1a}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner{height:100%}.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{visibility:visible;transform:scale(1)}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-error .art-progress-indicator,.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-error .art-progress-tip,.art-video-player.art-destroy .art-progress-tip{display:none!important}.art-video-player.art-mobile .art-bottom{padding:50px 7px 0}.art-video-player.art-mobile .art-bottom .art-controls{height:40px}.art-video-player.art-mobile .art-bottom .art-progress-indicator{visibility:visible!important;transform:scale(1)!important}.art-video-player .art-notice{z-index:80;width:100%;pointer-events:none;padding:10px;font-size:14px;display:none;position:absolute;top:0;left:0}.art-video-player .art-notice .art-notice-inner{color:#fff;background-color:#0009;border-radius:3px;padding:5px 10px;display:inline-block}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;min-width:200px;background-color:#000000e6;border-radius:3px;flex-direction:column;padding:5px 0;display:none;position:absolute;top:10px;left:10px}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;border-bottom:1px solid #ffffff1a;padding:10px 15px;font-size:12px;display:block;overflow:hidden}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 7px;display:inline-block}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:0}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;height:auto;max-height:300px;background-color:#000000e6;border-radius:3px;font-size:13px;transition:all .2s;display:none;position:absolute;bottom:50px;right:10px;overflow:auto}.art-video-player .art-settings .art-setting-panel{display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:block}.art-video-player .art-settings .art-setting-panel .art-setting-item{height:35px;cursor:pointer;color:#fffc;justify-content:space-between;align-items:center;padding:0 5px;line-height:1;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover,.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:#fff;background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon{width:30px;height:30px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{white-space:nowrap;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:24px;width:24px;justify-content:center;align-items:center;margin-right:10px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80;font-size:12px}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{height:24px;width:24px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:block}.art-video-player.art-mobile .art-settings{max-height:200px}.art-video-player .art-info{z-index:100;width:350px;color:#fff;-webkit-font-smoothing:antialiased;background-color:#000000e6;flex-direction:column;padding:10px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;font-size:12px;display:none;position:absolute;top:10px;left:10px}.art-video-player .art-info .art-info-item{margin-bottom:5px;display:flex}.art-video-player .art-info .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;flex:1;padding-left:5px;overflow:hidden}.art-video-player .art-info .art-info-item:last-child{margin-bottom:0}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-video-player.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;object-fit:fill}.art-video-player.art-fullscreen-web{z-index:9999;width:100%;height:100%;position:fixed;inset:0}.art-fullscreen-rotate{z-index:9999;width:100%;height:100%;background-color:#000;position:fixed;inset:0}.art-video-player .art-mini-header{z-index:110;height:35px;color:#fff;opacity:0;visibility:hidden;background-color:#00000080;justify-content:space-between;align-items:center;line-height:35px;transition:all .2s ease-in-out;display:none;position:absolute;top:0;left:0;right:0}.art-video-player .art-mini-header .art-mini-title{text-overflow:ellipsis;white-space:nowrap;cursor:move;flex:1;padding:0 10px;overflow:hidden}.art-video-player .art-mini-header .art-mini-close{width:35px;text-align:center;cursor:pointer;font-size:22px}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-mini{z-index:9999;width:400px;height:225px;position:fixed;box-shadow:0 2px 5px #00000029,0 3px 6px #0003}.art-video-player.art-mini .art-mini-header{user-select:none;display:flex}.art-video-player.art-mini.art-hover .art-mini-header{opacity:1;visibility:visible}.art-video-player.art-mini .art-mask .art-state{position:static}.art-video-player.art-mini .art-contextmenu,.art-video-player.art-mini .art-bottom,.art-video-player.art-mini .art-danmu,.art-video-player.art-mini .art-info,.art-video-player.art-mini .art-layers,.art-video-player.art-mini .art-notice,.art-video-player.art-mini .art-setting,.art-video-player.art-mini .art-subtitle{display:none!important}.art-auto-size{justify-content:center;align-items:center;display:flex}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-miniProgressBar{height:2px;background-color:var(--theme);display:block;position:absolute;bottom:0;left:0;right:0}.art-video-player .art-layer-lock{height:34px;width:34px;color:#fff;background-color:#00000080;border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;top:calc(50% - 17px);left:15px}.art-video-player.art-lock .art-bottom{display:none!important}.art-video-player.art-lock .art-subtitle{bottom:10px!important}.art-video-player.art-lock .art-layer-miniProgressBar{display:block!important}.art-video-player.art-control-show .art-layer-miniProgressBar{display:none}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-video-player .art-control-selector{position:relative}.art-video-player .art-control-selector .art-selector-list{min-width:100px;max-width:200px;max-height:200px;text-align:center;color:#fff;background-color:#000c;border-radius:3px;padding:5px 0;display:none;position:absolute;bottom:35px;overflow:auto}.art-video-player .art-control-selector .art-selector-list .art-selector-item{height:30px;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;padding:0 5px;line-height:30px;overflow:hidden}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover,.art-video-player .art-control-selector .art-selector-list .art-selector-item.art-current{color:#00c9ff}.art-video-player .art-control-selector:hover .art-selector-list{display:block}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000000;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}'},{}],hqjoJ:[function(e,t,r){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var n=e(r);if("boolean"===n)return"boolean";if("string"===n)return"string";if("number"===n)return"number";if("symbol"===n)return"symbol";if("function"===n)return function(e){return"GeneratorFunction"===i(e)}(r)?"generatorfunction":"function";if(function(e){return Array.isArray?Array.isArray(e):e instanceof Array}(r))return"array";if(function(e){return!(!e.constructor||"function"!=typeof e.constructor.isBuffer)&&e.constructor.isBuffer(e)}(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(function(e){return e instanceof Date||"function"==typeof e.toDateString&&"function"==typeof e.getDate&&"function"==typeof e.setDate}(r))return"date";if(function(e){return e instanceof Error||"string"==typeof e.message&&e.constructor&&"number"==typeof e.constructor.stackTraceLimit}(r))return"error";if(function(e){return e instanceof RegExp||"string"==typeof e.flags&&"boolean"==typeof e.ignoreCase&&"boolean"==typeof e.multiline&&"boolean"==typeof e.global}(r))return"regexp";switch(i(r)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(function(e){return"function"==typeof e.throw&&"function"==typeof e.return&&"function"==typeof e.next}(r))return"generator";switch(n=t.call(r)){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return n.slice(8,-1).toLowerCase().replace(/\s/g,"")};function i(e){return e.constructor?e.constructor.name:null}function n(e,t){var i=2s)),i.export(r,"queryAll",(()=>o)),i.export(r,"addClass",(()=>a)),i.export(r,"removeClass",(()=>l)),i.export(r,"hasClass",(()=>u)),i.export(r,"append",(()=>d)),i.export(r,"remove",(()=>c)),i.export(r,"setStyle",(()=>h)),i.export(r,"setStyles",(()=>f)),i.export(r,"getStyle",(()=>p)),i.export(r,"sublings",(()=>m)),i.export(r,"inverseClass",(()=>g)),i.export(r,"tooltip",(()=>v)),i.export(r,"isInViewport",(()=>y)),i.export(r,"includeFromEvent",(()=>_)),i.export(r,"replaceElement",(()=>b));var n=e("./compatibility");function s(e,t=document){return t.querySelector(e)}function o(e,t=document){return Array.from(t.querySelectorAll(e))}function a(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function u(e,t){return e.classList.contains(t)}function d(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function c(e){return e.parentNode.removeChild(e)}function h(e,t,r){return e.style[t]=r,e}function f(e,t){return Object.keys(t).forEach((r=>{h(e,r,t[r])})),e}function p(e,t,r=!0){const i=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(i):i}function m(e){return Array.from(e.parentElement.children).filter((t=>t!==e))}function g(e,t){m(e).forEach((e=>l(e,t))),a(e,t)}function v(e,t,r="top"){n.isMobile||(e.setAttribute("aria-label",t),a(e,"hint--rounded"),a(e,`hint--${r}`))}function y(e,t=0){const r=e.getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight,n=window.innerWidth||document.documentElement.clientWidth,s=r.top-t<=i&&r.top+r.height+t>=0,o=r.left-t<=n+t&&r.left+r.width+t>=0;return s&&o}function _(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function b(e,t){return t.parentNode.replaceChild(e,t),e}},{"./compatibility":"ki3pQ","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ki3pQ:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"userAgent",(()=>n)),i.export(r,"isMobile",(()=>s)),i.export(r,"isSafari",(()=>o)),i.export(r,"isWechat",(()=>a)),i.export(r,"isIE",(()=>l));const n="undefined"!=typeof window?window.navigator.userAgent:"",s=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n),o=/^((?!chrome|android).)*safari/i.test(n),a=/MicroMessenger/i.test(n),l=/MSIE|Trident/i.test(n)},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lDQPM:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"ArtPlayerError",(()=>n)),i.export(r,"errorHandle",(()=>s));class n extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function s(e,t){if(!e)throw new n(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1dyFb":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");function n(e){return"WEBVTT \r\n\r\n".concat((t=e,t.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,((e,t,r)=>{let i=r.slice(0,3);return 1===r.length&&(i=r+"00"),2===r.length&&(i=r+"0"),`${t},${i}`}))).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"));var t}function s(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function o(e){const t=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map(((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`})).join("")}return`WEBVTT\n\n${e.split(/\r?\n/).map((e=>{const i=e.match(t);return i?{start:r(i[1].trim()),end:r(i[2].trim()),text:i[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((e=>e.trim())).join("\n")}:null})).filter((e=>e)).map(((e,t)=>e?`${t+1}\n${e.start} --\x3e ${e.end}\n${e.text}`:"")).filter((e=>e.trim())).join("\n\n")}`}i.defineInteropFlag(r),i.export(r,"srtToVtt",(()=>n)),i.export(r,"vttToBlob",(()=>s)),i.export(r,"assToVtt",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"96gQe":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");function n(e){return e.includes("?")?n(e.split("?")[0]):e.includes("#")?n(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}function s(e,t){const r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}i.defineInteropFlag(r),i.export(r,"getExt",(()=>n)),i.export(r,"download",(()=>s))},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lMM6V:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"def",(()=>n)),i.export(r,"has",(()=>o)),i.export(r,"get",(()=>a)),i.export(r,"mergeDeep",(()=>l));const n=Object.defineProperty,{hasOwnProperty:s}=Object.prototype;function o(e,t){return s.call(e,t)}function a(e,t){return Object.getOwnPropertyDescriptor(e,t)}function l(...e){const t=e=>e&&"object"==typeof e&&!Array.isArray(e);return e.reduce(((e,r)=>(Object.keys(r).forEach((i=>{const n=e[i],s=r[i];Array.isArray(n)&&Array.isArray(s)?e[i]=n.concat(...s):!t(n)||!t(s)||s instanceof Element?e[i]=s:e[i]=l(n,s)})),e)),{})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"41yFW":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");function n(e=0){return new Promise((t=>setTimeout(t,e)))}function s(e,t,r){let i;function n(...n){clearTimeout(i),i=setTimeout((function(){i=null,e.apply(r,n)}),t)}return n.clearTimeout=function(){clearTimeout(i)},n}function o(e,t){let r,i,n=!1;return function s(...o){if(n)return r=o,void(i=this);n=!0,e.apply(this,o),setTimeout((()=>{n=!1,r&&(s.apply(i,r),r=null,i=null)}),t)}}i.defineInteropFlag(r),i.export(r,"sleep",(()=>n)),i.export(r,"debounce",(()=>s)),i.export(r,"throttle",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],MRJhs:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");function n(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function s(e){const t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),i=Math.floor(e-3600*t-60*r);return(t>0?[t,r,i]:[r,i]).map((e=>e<10?`0${e}`:String(e))).join(":")}function o(e){return e.replace(/[&<>'"]/g,(e=>({"&":"&","<":"<",">":">","'":"'",'"':"""}[e]||e)))}i.defineInteropFlag(r),i.export(r,"clamp",(()=>n)),i.export(r,"secondToTime",(()=>s)),i.export(r,"escape",(()=>o))},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3vPoh":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"ComponentOption",(()=>c));var n=e("../utils");const s="boolean",o="string",a="number",l="object",u="function";function d(e,t,r){return n.errorHandle(t===o||e instanceof Element,`${r.join(".")} require '${o}' or 'Element' type`)}const c={html:d,disable:`?${s}`,name:`?${o}`,index:`?${a}`,style:`?${l}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${o}`,width:`?${a}`,selector:"?array",onSelect:`?${u}`};r.default={container:d,url:o,poster:o,title:o,type:o,theme:o,lang:o,volume:a,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,fastForward:s,autoPlayback:s,autoOrientation:s,ads:[{url:o}],plugins:[u],whitelist:[`${o}|${u}|regexp`],layers:[c],contextmenu:[c],settings:[c],controls:[{...c,position:(e,t,r)=>{const i=["top","left","right"];return n.errorHandle(i.includes(e),`${r.join(".")} only accept ${i.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:o,url:o}],highlight:[{time:a,text:o}],thumbnails:{url:o,number:a,column:a},subtitle:{url:o,type:o,style:l,encoding:o},moreVideoAttr:l,icons:l,customType:l}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],eksZR:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={propertys:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fCKwj:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("./utils");r.default=class{constructor(e){this.art=e}get state(){const{option:e,constructor:{kindOf:t}}=this.art;return!i.isMobile||e.whitelist.some((e=>{switch(t(e)){case"string":return"*"===e||i.userAgent.indexOf(e)>-1;case"function":return e(i.userAgent);case"regexp":return e.test(i.userAgent);default:return!1}}))}}},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bqHdK:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("./utils");class n{constructor(e){this.art=e;const{option:t,constructor:r,whitelist:n}=e;t.container instanceof Element?this.$container=t.container:(this.$container=i.query(t.container),i.errorHandle(this.$container,`No container element found by ${t.container}`));const s=this.$container.tagName.toLowerCase();i.errorHandle("div"===s,`Unsupported container element type, only support 'div' but got '${s}'`),i.errorHandle(r.instances.every((e=>e.template.$container!==this.$container)),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.$original=this.$container.cloneNode(!0),n.state?this.desktop():this.mobile()}static get html(){return'
Player version:
4.3.23
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
×
'}query(e){return i.query(e,this.$container)}desktop(){const{option:e}=this.art;e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),e.backdrop&&(i.addClass(this.$setting,"art-backdrop-filter"),i.addClass(this.$contextmenu,"art-backdrop-filter"),i.addClass(this.$info,"art-backdrop-filter")),i.isMobile&&i.addClass(this.$player,"art-mobile")}mobile(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}destroy(e){e?i.replaceElement(this.$original,this.$container):i.addClass(this.$player,"art-destroy")}}r.default=n},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4O9ZY":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("../utils"),s=e("./zh-cn.json"),o=i.interopDefault(s),a=e("./zh-tw.json"),l=i.interopDefault(a),u=e("./pl.json"),d=i.interopDefault(u),c=e("./cs.json"),h=i.interopDefault(c);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":o.default,"zh-tw":l.default,pl:d.default,cs:h.default},this.init()}init(){const e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=n.mergeDeep(this.languages,e),this.init()}}},{"../utils":"geSvU","./zh-cn.json":"e7BQ4","./zh-tw.json":"5kFyN","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2","./pl.json":"3cd1e","./cs.json":"an7cR"}],e7BQ4:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"统计信息","Close":"关闭","Video Load Failed":"加载失败","Volume":"音量","Play":"播放","Pause":"暂停","Rate":"速度","Mute":"静音","Video Flip":"画面翻转","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新连接","Hide Subtitle":"隐藏字幕","Show Subtitle":"显示字幕","Show Setting":"显示设置","Hide Setting":"隐藏设置","Screenshot":"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例","Default":"默认","Normal":"正常","Open":"打开","Switch Video":"切换","Switch Subtitle":"切换字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Auto playback at":"已为您定位至"}')},{}],"5kFyN":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"統計訊息","Close":"關閉","Video Load Failed":"載入失敗","Volume":"音量","Play":"播放","Pause":"暫停","Rate":"速度","Mute":"靜音","Video Flip":"畫面翻轉","Horizontal":"水平","Vertical":"垂直","Reconnect":"重新連接","Hide Subtitle":"隱藏字幕","Show Subtitle":"顯示字幕","Show Setting":"顯示设置","Hide Setting":"隱藏设置","Screenshot":"截圖","Play Speed":"播放速度","Aspect Ratio":"畫面比例","Default":"默認","Normal":"正常","Open":"打開","Switch Video":"切換","Switch Subtitle":"切換字幕","Fullscreen":"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"網頁全屏","Exit Web Fullscreen":"退出網頁全屏","Mini Player":"迷你播放器","PIP Mode":"開啟畫中畫","Exit PIP Mode":"退出畫中畫","PIP Not Supported":"不支持畫中畫","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Auto playback at":"已為您定位至"}')},{}],"3cd1e":[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Informacje o wideo","Close":"Zamknij","Video Load Failed":"Błąd ładowania wideo","Volume":"Głośność","Play":"Odtwórz","Pause":"Wstrzymaj","Rate":"Oceń","Mute":"Wycisz","Video Flip":"Rotacja wideo","Horizontal":"Pozioma","Vertical":"Pionowa","Reconnect":"Połącz ponownie","Hide Subtitle":"Ukryj napisy","Show Subtitle":"Pokaż napisy","Show Setting":"Pokaż ustawienia","Hide Setting":"Ukryj ustawienia","Screenshot":"Zrzut ekranu","Play Speed":"Prędkość odtwarzania","Aspect Ratio":"Współczynnik proporcji","Default":"Domyślny","Normal":"Normalny","Open":"Otwórz","Switch Video":"Przełącz wideo","Switch Subtitle":"Przełącz napisy","Fullscreen":"Pełny ekran","Exit Fullscreen":"Zamknij pełny ekran","Web Fullscreen":"Tryb pełnej strony","Exit Web Fullscreen":"Zamknij tryb pełnej strony","Mini Player":"Miniodtwarzacz","PIP Mode":"Tryb PiP","Exit PIP Mode":"Zamknij tryb PiP","PIP Not Supported":"Tryb PiP nieobsługiwany","Fullscreen Not Supported":"Pełny ekran nieobsługiwany","Subtitle Offset":"Przesunięcie napisów","Auto playback at":"Automatyczne odtwarzanie za"}')},{}],an7cR:[function(e,t,r){t.exports=JSON.parse('{"Video Info":"Info o videu","Close":"Zavřít","Video Load Failed":"Nahrání videa selhalo","Volume":"Hlasitost","Play":"Přehrát","Pause":"Pozastavit","Rate":"Hodnocení","Mute":"Ztlumit","Video Flip":"Otočit video","Horizontal":"Horizontálně","Vertical":"Vertikálně","Reconnect":"Opětovné připojení","Hide Subtitle":"Skrýt titulky","Show Subtitle":"Ukázat titulky","Show Setting":"Zobrazit nastavení","Hide Setting":"Skrýt nastavení","Screenshot":"Snímek obrazovky","Play Speed":"Rychlost přehrávání","Aspect Ratio":"Poměr stran","Default":"Výchozí","Normal":"Normální","Open":"Otevřít","Switch Video":"Přepnout video","Switch Subtitle":"Přepnout titulky","Fullscreen":"Celá obrazovka","Exit Fullscreen":"Opustit režim celé obrazovky","Web Fullscreen":"Celá stránka","Exit Web Fullscreen":"Zavřít režim celé stránky","Mini Player":"Mini přehrávač","PIP Mode":"Režim PIP","Exit PIP Mode":"Opustit režim PIP","PIP Not Supported":"Režim PIP není podporován","Fullscreen Not Supported":"Režim celé obrazovky není podporován","Subtitle Offset":"Posun titulků","Auto playback at":"Automatické přehrávání za"}')},{}],fzROd:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("./urlMix"),s=i.interopDefault(n),o=e("./attrMix"),a=i.interopDefault(o),l=e("./playMix"),u=i.interopDefault(l),d=e("./pauseMix"),c=i.interopDefault(d),h=e("./toggleMix"),f=i.interopDefault(h),p=e("./seekMix"),m=i.interopDefault(p),g=e("./volumeMix"),v=i.interopDefault(g),y=e("./currentTimeMix"),_=i.interopDefault(y),b=e("./durationMix"),w=i.interopDefault(b),S=e("./switchMix"),x=i.interopDefault(S),E=e("./playbackRateMix"),A=i.interopDefault(E),R=e("./aspectRatioMix"),L=i.interopDefault(R),k=e("./screenshotMix"),I=i.interopDefault(k),j=e("./fullscreenMix"),T=i.interopDefault(j),O=e("./fullscreenWebMix"),M=i.interopDefault(O),D=e("./pipMix"),C=i.interopDefault(D),P=e("./loadedMix"),N=i.interopDefault(P),B=e("./playedMix"),F=i.interopDefault(B),U=e("./playingMix"),z=i.interopDefault(U),V=e("./autoSizeMix"),G=i.interopDefault(V),H=e("./rectMix"),Z=i.interopDefault(H),W=e("./flipMix"),q=i.interopDefault(W),Y=e("./miniMix"),K=i.interopDefault(Y),X=e("./loopMix"),J=i.interopDefault(X),Q=e("./posterMix"),$=i.interopDefault(Q),ee=e("./autoHeightMix"),te=i.interopDefault(ee),re=e("./themeMix"),ie=i.interopDefault(re),ne=e("./titleMix"),se=i.interopDefault(ne),oe=e("./normalSizeMix"),ae=i.interopDefault(oe),le=e("./subtitleOffsetMix"),ue=i.interopDefault(le),de=e("./optionInit"),ce=i.interopDefault(de),he=e("./eventInit"),fe=i.interopDefault(he);r.default=class{constructor(e){s.default(e),a.default(e),u.default(e),c.default(e),f.default(e),m.default(e),v.default(e),_.default(e),w.default(e),x.default(e),A.default(e),L.default(e),I.default(e),T.default(e),M.default(e),C.default(e),N.default(e),F.default(e),z.default(e),G.default(e),Z.default(e),q.default(e),K.default(e),J.default(e),$.default(e),te.default(e),ie.default(e),se.default(e),ae.default(e),ue.default(e),fe.default(e),ce.default(e)}}},{"./urlMix":"cChak","./attrMix":"e6Qkm","./playMix":"1FNSV","./pauseMix":"aPHUd","./toggleMix":"joISC","./seekMix":"4wG3e","./volumeMix":"42Xo1","./currentTimeMix":"8Z3pM","./durationMix":"hpnJy","./switchMix":"aCsa8","./playbackRateMix":"61TVa","./aspectRatioMix":"8BV9k","./screenshotMix":"bop8O","./fullscreenMix":"i63VK","./fullscreenWebMix":"bEKHA","./pipMix":"ibIuh","./loadedMix":"kwpxq","./playedMix":"e4Iws","./playingMix":"fueZP","./autoSizeMix":"l6TMg","./rectMix":"6URTt","./flipMix":"joth7","./miniMix":"durkk","./loopMix":"5EZwI","./posterMix":"22WMt","./autoHeightMix":"8pdNr","./themeMix":"eADqm","./titleMix":"8T9U6","./subtitleOffsetMix":"8CMLG","./optionInit":"aqLU7","./eventInit":"59ETf","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2","./normalSizeMix":"iEQHG"}],cChak:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,template:{$video:r}}=e;i.def(e,"url",{get:()=>r.currentSrc,async set(n){const s=t.type||i.getExt(n),o=t.customType[s];s&&o?(await i.sleep(),e.loading.show=!0,o.call(e,r,n,e)):(e.url&&e.url!==n&&e.once("video:canplay",(()=>{e.isReady&&e.emit("restart")})),r.src=n,e.option.url=n,e.emit("url",n))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],e6Qkm:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$video:t}}=e;i.def(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1FNSV":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:n,constructor:{instances:s},template:{$video:o}}=e;i.def(e,"play",{value(){const i=o.play();if(i&&i.then&&i.then().catch((e=>{throw r.show=e,e})),n.mutex)for(let t=0;te.playing?e.pause():e.play()})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4wG3e":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{notice:t}=e;i.def(e,"seek",{set(r){e.currentTime=r,e.emit("seek",e.currentTime),e.duration&&(t.show=`${i.secondToTime(e.currentTime)} / ${i.secondToTime(e.duration)}`)}}),i.def(e,"forward",{set(t){e.seek=e.currentTime+t}}),i.def(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"42Xo1":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:n,storage:s}=e;i.def(e,"volume",{get:()=>t.volume||0,set:o=>{t.volume=i.clamp(o,0,1),n.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&s.set("volume",t.volume),e.emit("volume",t.volume)}}),i.def(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("volume",t.volume)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8Z3pM":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{$video:t}=e.template;i.def(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{r=parseFloat(r),Number.isNaN(r)||(t.currentTime=i.clamp(r,0,e.duration))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],hpnJy:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){i.def(e,"duration",{get:()=>{const{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aCsa8:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,option:r,notice:n}=e;function s(i,s,o){return new Promise((a=>{if(i===e.url)return a(i);const{playing:l}=e;e.pause(),URL.revokeObjectURL(e.url),e.url=i,e.once("video:canplay",(()=>{e.playbackRate=!1,e.aspectRatio=!1,e.flip="normal",e.autoSize=r.autoSize,e.currentTime=o,e.notice.show="",l&&e.play(),s&&(n.show=`${t.get("Switch Video")}: ${s}`),e.emit("switch",i),a(i)}))}))}i.def(e,"switchQuality",{value:(t,r)=>s(t,r,e.currentTime)}),i.def(e,"switchUrl",{value:(e,t)=>s(e,t,0)})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"61TVa":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$video:t},i18n:r,notice:n}=e;i.def(e,"playbackRate",{get:()=>t.playbackRate,set(s){if(s){if(s===t.playbackRate)return;const o=[.25,.5,.75,1,1.25,1.5,1.75,2,3,4];i.errorHandle(o.includes(s),`'playbackRate' only accept ${o.toString()} as parameters`),t.playbackRate=s,n.show=`${r.get("Rate")}: ${1===s?r.get("Normal"):`${s}x`}`,e.emit("playbackRate",s)}else e.playbackRate=1,e.emit("playbackRate")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8BV9k":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$video:t,$player:r},i18n:n,notice:s}=e;i.def(e,"aspectRatio",{get:()=>r.dataset.aspectRatio||"default",set(o){o||(o="default");const a=["default","4:3","16:9"];if(i.errorHandle(a.includes(o),`'aspectRatio' only accept ${a.toString()} as parameters`),"default"===o)i.setStyle(t,"width",null),i.setStyle(t,"height",null),i.setStyle(t,"padding",null),delete r.dataset.aspectRatio;else{const e=o.split(":").map(Number),{videoWidth:n,videoHeight:s}=t,{clientWidth:a,clientHeight:l}=r,u=n/s,d=e[0]/e[1];if(u>d){const e=d*s/n;i.setStyle(t,"width",100*e+"%"),i.setStyle(t,"height","100%"),i.setStyle(t,"padding",`0 ${(a-a*e)/2}px`)}else{const e=n/d/s;i.setStyle(t,"width","100%"),i.setStyle(t,"height",100*e+"%"),i.setStyle(t,"padding",(l-l*e)/2+"px 0")}r.dataset.aspectRatio=o}s.show=`${n.get("Aspect Ratio")}: ${"default"===o?n.get("Default"):o}`,e.emit("aspectRatio",o)}}),i.def(e,"aspectRatioReset",{set(t){if(t){const{aspectRatio:t}=e;e.aspectRatio=t}}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bop8O:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,notice:r,template:{$video:n}}=e,s=document.createElement("canvas");i.def(e,"getDataURL",{value:()=>new Promise(((e,t)=>{try{s.width=n.videoWidth,s.height=n.videoHeight,s.getContext("2d").drawImage(n,0,0),e(s.toDataURL("image/png"))}catch(e){r.show=e,t(e)}}))}),i.def(e,"getBlobUrl",{value:()=>new Promise(((e,t)=>{try{s.width=n.videoWidth,s.height=n.videoHeight,s.getContext("2d").drawImage(n,0,0),s.toBlob((t=>{e(URL.createObjectURL(t))}))}catch(e){r.show=e,t(e)}}))}),i.def(e,"screenshot",{value:async()=>{const r=await e.getDataURL();return i.download(r,`${t.title||"artplayer"}_${i.secondToTime(n.currentTime)}.png`),e.emit("screenshot",r),r}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],i63VK:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("../libs/screenfull"),s=i.interopDefault(n),o=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:i,$player:n}}=e,a=s.default();e.once("video:loadedmetadata",(()=>{var s;a.isEnabled?(s=e,a.on("change",(()=>s.emit("fullscreen",a.isFullscreen))),o.def(s,"fullscreen",{get:()=>a.isFullscreen,async set(e){e?(s.normalSize="fullscreen",s.aspectRatioReset=!0,s.autoSize=!1,await a.request(n),o.addClass(n,"art-fullscreen"),s.emit("resize"),s.emit("fullscreen",!0),r.show=""):(s.aspectRatioReset=!0,s.autoSize=s.option.autoSize,await a.exit(),o.removeClass(n,"art-fullscreen"),s.emit("resize"),s.emit("fullscreen"),r.show="")}})):document.fullscreenEnabled||i.webkitSupportsFullscreen?(e=>{o.def(e,"fullscreen",{get:()=>i.webkitDisplayingFullscreen,set(t){t?(e.normalSize="fullscreen",i.webkitEnterFullscreen(),e.emit("fullscreen",!0),r.show=""):(i.webkitExitFullscreen(),e.emit("fullscreen"),r.show="")}})})(e):o.def(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),o.def(e,"fullscreen",o.get(e,"fullscreen"))}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2","../libs/screenfull":"aPwar"}],aPwar:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(){const e=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],t=(()=>{const t=e[0],r={};for(const i of e)if(i[1]in document){for(const[e,n]of i.entries())r[t[e]]=n;return r}return!1})(),r={change:t.fullscreenchange,error:t.fullscreenerror};let i={request:(e=document.documentElement,r)=>new Promise(((n,s)=>{const o=()=>{i.off("change",o),n()};i.on("change",o);const a=e[t.requestFullscreen](r);a instanceof Promise&&a.then(o).catch(s)})),exit:()=>new Promise(((e,r)=>{if(!i.isFullscreen)return void e();const n=()=>{i.off("change",n),e()};i.on("change",n);const s=document[t.exitFullscreen]();s instanceof Promise&&s.then(n).catch(r)})),toggle:(e,t)=>i.isFullscreen?i.exit():i.request(e,t),onchange(e){i.on("change",e)},onerror(e){i.on("error",e)},on(e,t){const i=r[e];i&&document.addEventListener(i,t,!1)},off(e,t){const i=r[e];i&&document.removeEventListener(i,t,!1)},raw:t};return Object.defineProperties(i,{isFullscreen:{get:()=>Boolean(document[t.fullscreenElement])},element:{enumerable:!0,get:()=>document[t.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[t.fullscreenEnabled])}}),t||(i={isEnabled:!1}),i}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],bEKHA:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{notice:t,template:{$player:r}}=e;i.def(e,"fullscreenWeb",{get:()=>i.hasClass(r,"art-fullscreen-web"),set(n){n?(e.normalSize="fullscreenWeb",i.addClass(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=!1,e.emit("resize"),e.emit("fullscreenWeb",!0),t.show=""):(i.removeClass(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=e.option.autoSize,e.emit("resize"),e.emit("fullscreenWeb"),t.show="")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ibIuh:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,notice:r,template:{$video:n}}=e;document.pictureInPictureEnabled?function(e){const{template:{$video:t},events:{proxy:r},notice:n}=e;t.disablePictureInPicture=!1,i.def(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.normalSize="pip",t.requestPictureInPicture().catch((e=>{throw n.show=e,e}))):document.exitPictureInPicture().catch((e=>{throw n.show=e,e}))}}),r(t,"enterpictureinpicture",(()=>{e.emit("pip",!0)})),r(t,"leavepictureinpicture",(()=>{e.emit("pip")}))}(e):n.webkitSupportsPresentationMode?function(e){const{$video:t}=e.template;t.webkitSetPresentationMode("inline"),i.def(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.normalSize="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip"))}})}(e):i.def(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],kwpxq:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{$video:t}=e.template;i.def(e,"loaded",{get:()=>e.loadedTime/t.duration}),i.def(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],e4Iws:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){i.def(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fueZP:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{$video:t}=e.template;i.def(e,"playing",{get:()=>!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],l6TMg:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{$container:t,$player:r,$video:n}=e.template;i.def(e,"autoSize",{get:()=>i.hasClass(t,"art-auto-size"),set(s){if(s){const{videoWidth:s,videoHeight:o}=n,{width:a,height:l}=t.getBoundingClientRect(),u=s/o,d=a/l;if(i.addClass(t,"art-auto-size"),d>u){const e=l*u/a*100;i.setStyle(r,"width",`${e}%`),i.setStyle(r,"height","100%")}else{const e=a/u/l*100;i.setStyle(r,"width","100%"),i.setStyle(r,"height",`${e}%`)}e.emit("autoSize",{width:e.width,height:e.height})}else i.removeClass(t,"art-auto-size"),i.setStyle(r,"width",null),i.setStyle(r,"height",null),e.emit("autoSize")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"6URTt":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){i.def(e,"rect",{get:()=>e.template.$player.getBoundingClientRect()});const t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[n]})}i.def(e,"x",{get:()=>e.left+window.pageXOffset}),i.def(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],joth7:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{template:{$player:t},i18n:r,notice:n}=e;i.def(e,"flip",{get:()=>t.dataset.flip||"normal",set(s){s||(s="normal");const o=["normal","horizontal","vertical"];i.errorHandle(o.includes(s),`'flip' only accept ${o.toString()} as parameters`),"normal"===s?delete t.dataset.flip:(e.rotate=!1,t.dataset.flip=s);const a=s.replace(s[0],s[0].toUpperCase());n.show=`${r.get("Video Flip")}: ${r.get(a)}`,e.emit("flip",s)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],durkk:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,option:r,storage:n,events:{proxy:s},template:{$player:o,$miniClose:a,$miniTitle:l,$miniHeader:u}}=e;let d="",c=!1,h=0,f=0,p=0,m=0;s(u,"mousedown",(t=>{c=!0,h=t.pageX,f=t.pageY,p=e.left,m=e.top})),s(document,"mousemove",(e=>{if(c){i.addClass(o,"art-is-dragging");const t=m+e.pageY-f,r=p+e.pageX-h;i.setStyle(o,"top",`${t}px`),i.setStyle(o,"left",`${r}px`),n.set("top",t),n.set("left",r)}})),s(document,"mouseup",(()=>{c=!1,i.removeClass(o,"art-is-dragging")})),s(a,"click",(()=>{e.mini=!1,c=!1,i.removeClass(o,"art-is-dragging")})),i.append(l,r.title||t.get("Mini Player")),i.def(e,"mini",{get:()=>i.hasClass(o,"art-mini"),set(t){if(t){e.normalSize="mini",e.autoSize=!1,d=o.style.cssText,i.addClass(o,"art-mini");const t=n.get("top"),r=n.get("left");if(t&&r)i.setStyle(o,"top",`${t}px`),i.setStyle(o,"left",`${r}px`),i.isInViewport(u)||(n.del("top"),n.del("left"),e.mini=!0);else{const t=document.body,r=t.clientHeight-e.height-50,s=t.clientWidth-e.width-50;n.set("top",r),n.set("left",s),i.setStyle(o,"top",`${r}px`),i.setStyle(o,"left",`${s}px`)}e.aspectRatio=!1,e.playbackRate=!1,e.notice.show="",e.emit("mini",!0)}else o.style.cssText=d,i.removeClass(o,"art-mini"),i.setStyle(o,"top",null),i.setStyle(o,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=r.autoSize,e.notice.show="",e.emit("mini")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5EZwI":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){let t=[];i.def(e,"loop",{get:()=>t,set:r=>{if(Array.isArray(r)&&"number"==typeof r[0]&&"number"==typeof r[1]){const n=i.clamp(r[0],0,Math.min(r[1],e.duration)),s=i.clamp(r[1],n,e.duration);s-n>=1?(t=[n,s],e.emit("loop",t)):(t=[],e.emit("loop"))}else t=[],e.emit("loop")}}),e.on("video:timeupdate",(()=>{t.length&&(e.currentTimet[1])&&(e.seek=t[0])}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"22WMt":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,template:{$poster:r}}=e;i.def(e,"poster",{get:()=>t.poster,set(e){t.poster=e,i.setStyle(r,"backgroundImage",`url(${e})`)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8pdNr":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,template:{$container:r,$video:n}}=e,s=r.style.height;i.def(e,"autoHeight",{get:()=>i.hasClass(r,"art-auto-height"),set(o){if(o){const{clientWidth:s}=r,{videoHeight:o,videoWidth:a}=n,l=o*(s/a);i.setStyle(r,"height",l+"px"),i.addClass(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight",l)}else i.setStyle(r,"height",s),i.removeClass(r,"art-auto-height"),e.autoSize=t.autoSize,e.emit("autoHeight")}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],eADqm:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,template:{$player:r}}=e;i.def(e,"theme",{get:()=>getComputedStyle(r).getPropertyValue("--theme"),set(e){t.theme=e,r.style.setProperty("--theme",e)}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8T9U6":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){i.def(e,"title",{get:()=>e.option.title,set(t){e.option.title=t}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"8CMLG":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{clamp:t}=e.constructor.utils,{notice:r,template:n,i18n:s}=e;let o=0,a=[];e.on("subtitle:switch",(()=>{a=[]})),i.def(e,"subtitleOffset",{get:()=>o,set(i){if(n.$track&&n.$track.track){const l=Array.from(n.$track.track.cues);o=t(i,-5,5);for(let r=0;r{e.attr(r,t.moreVideoAttr[r])})),t.muted&&(e.muted=t.muted),t.volume&&(n.volume=i.clamp(t.volume,0,1));const o=r.get("volume");"number"==typeof o&&(n.volume=i.clamp(o,0,1)),t.poster&&i.setStyle(s,"backgroundImage",`url(${t.poster})`),t.autoplay&&(n.autoplay=t.autoplay),t.playsInline&&(n.playsInline=!0,n["webkit-playsinline"]=!0),t.theme&&(e.theme=t.theme),0===t.ads.length&&(e.url=t.url)}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"59ETf":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("../config"),s=i.interopDefault(n),o=e("../utils");r.default=function(e){const{i18n:t,notice:r,option:i,constructor:n,events:{proxy:a},template:{$player:l,$video:u,$poster:d}}=e;let c=0;for(let t=0;t{e.emit(`video:${t.type}`,t)}));e.on("video:canplay",(()=>{c=0,e.loading.show=!1})),e.once("video:canplay",(()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")})),e.on("video:ended",(()=>{i.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)})),e.on("video:error",(async()=>{c{e.autoSize=i.autoSize,o.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)})),e.on("video:loadstart",(()=>{e.loading.show=!0})),e.on("video:pause",(()=>{e.controls.show=!0,e.mask.show=!0})),e.on("video:play",(()=>{e.mask.show=!1,o.setStyle(d,"display","none")})),e.on("video:playing",(()=>{e.mask.show=!1})),e.on("video:seeked",(()=>{e.loading.show=!1})),e.on("video:seeking",(()=>{e.loading.show=!0})),e.on("video:timeupdate",(()=>{e.mask.show=!1})),e.on("video:waiting",(()=>{e.loading.show=!0}))}},{"../config":"eksZR","../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iEQHG:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const t=["mini","pip","fullscreen","fullscreenWeb"];i.def(e,"normalSize",{get:()=>t.every((t=>!e[t])),set(r){t.filter((e=>e!==r)).forEach((t=>{e[t]&&(e[t]=!1)}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],kJ9J9:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("../utils"),s=e("../utils/component"),o=i.interopDefault(s),a=e("./fullscreen"),l=i.interopDefault(a),u=e("./fullscreenWeb"),d=i.interopDefault(u),c=e("./pip"),h=i.interopDefault(c),f=e("./playAndPause"),p=i.interopDefault(f),m=e("./progress"),g=i.interopDefault(m),v=e("./subtitle"),y=i.interopDefault(v),_=e("./time"),b=i.interopDefault(_),w=e("./volume"),S=i.interopDefault(w),x=e("./setting"),E=i.interopDefault(x),A=e("./thumbnails"),R=i.interopDefault(A),L=e("./screenshot"),k=i.interopDefault(L),I=e("./quality"),j=i.interopDefault(I),T=e("./loop"),O=i.interopDefault(T);class M extends o.default{constructor(e){super(e),this.name="control";const{option:t,constructor:r,events:{proxy:i},template:{$player:s}}=e;let o=Date.now();i(s,["click","mousemove","touchstart","touchmove"],(()=>{this.show=!0,n.removeClass(s,"art-hide-cursor"),n.addClass(s,"art-hover"),o=Date.now()})),e.on("video:timeupdate",(()=>{e.playing&&this.show&&Date.now()-o>=r.CONTROL_HIDE_TIME&&(this.show=!1,n.addClass(s,"art-hide-cursor"),n.removeClass(s,"art-hover"))})),e.once("video:loadedmetadata",(()=>{this.add(g.default({name:"progress",disable:t.isLive,position:"top",index:10})),this.add(R.default({name:"thumbnails",disable:!t.thumbnails.url||t.isLive||n.isMobile,position:"top",index:20})),this.add(O.default({name:"loop",disable:!1,position:"top",index:30})),this.add(p.default({name:"playAndPause",disable:!1,position:"left",index:10})),this.add(S.default({name:"volume",disable:!1,position:"left",index:20})),this.add(b.default({name:"time",disable:t.isLive,position:"left",index:30})),this.add(j.default({name:"quality",disable:0===t.quality.length,position:"right",index:10})),this.add(k.default({name:"screenshot",disable:!t.screenshot||n.isMobile,position:"right",index:20})),this.add(y.default({name:"subtitle",disable:!t.subtitle.url,position:"right",index:30})),this.add(E.default({name:"setting",disable:!t.setting,position:"right",index:40})),this.add(h.default({name:"pip",disable:!t.pip,position:"right",index:50})),this.add(d.default({name:"fullscreenWeb",disable:!t.fullscreenWeb,position:"right",index:60})),this.add(l.default({name:"fullscreen",disable:!t.fullscreen,position:"right",index:70}));for(let e=0;eNumber(e.dataset.index)>=Number(i.dataset.index)));return d?d.insertAdjacentElement("beforebegin",i):n.append(this.$parent,i),t.html&&n.append(i,t.html),t.style&&n.setStyles(i,t.style),t.tooltip&&n.tooltip(i,t.tooltip),t.click&&this.art.events.proxy(i,"click",(e=>{e.preventDefault(),t.click.call(this.art,this,e)})),t.selector&&["left","right"].includes(t.position)&&this.selector(t,i),t.mounted&&t.mounted.call(this.art,i),1===i.childNodes.length&&3===i.childNodes[0].nodeType&&n.addClass(i,"art-control-onlyText"),l.def(this,r,{value:i}),i}selector(e,t){const{hover:r,proxy:i}=this.art.events;n.addClass(t,"art-control-selector");const s=document.createElement("div");n.addClass(s,"art-selector-value"),n.append(s,e.html),t.innerText="",n.append(t,s);const o=e.selector.map(((e,t)=>`
${e.html}
`)).join(""),a=document.createElement("div");n.addClass(a,"art-selector-list"),n.append(a,o),n.append(t,a);const l=()=>{const e=n.getStyle(t,"width")/2-n.getStyle(a,"width")/2;a.style.left=`${e}px`};r(t,l),i(a,"click",(async t=>{const r=(t.composedPath()||[]).find((e=>n.hasClass(e,"art-selector-item")));if(!r)return;n.inverseClass(r,"art-current");const i=Number(r.dataset.index),o=e.selector[i]||{};if(s.innerText=r.innerText,e.onSelect){const i=await e.onSelect.call(this.art,o,r,t);"string"!=typeof i&&"number"!=typeof i||(s.innerHTML=i)}l(),this.art.emit("selector",o,r)}))}}},{"./dom":"ff6Hs","option-validator":"hqjoJ","../scheme":"3vPoh","./property":"lMM6V","./error":"lDQPM","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],awkUw:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{const{events:{proxy:r},icons:n,i18n:s}=t,o=i.append(e,n.fullscreenOn),a=i.append(e,n.fullscreenOff);i.setStyle(a,"display","none"),r(e,"click",(()=>{t.fullscreen=!t.fullscreen})),t.on("fullscreen",(t=>{t?(i.tooltip(e,s.get("Exit Fullscreen")),i.setStyle(o,"display","none"),i.setStyle(a,"display","inline-flex")):(i.tooltip(e,s.get("Fullscreen")),i.setStyle(o,"display","inline-flex"),i.setStyle(a,"display","none"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3qoPe":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{const{events:{proxy:r},icons:n,i18n:s}=t,o=i.append(e,n.fullscreenWebOn),a=i.append(e,n.fullscreenWebOff);i.setStyle(a,"display","none"),r(e,"click",(()=>{t.fullscreenWeb=!t.fullscreenWeb})),t.on("fullscreenWeb",(t=>{t?(i.tooltip(e,s.get("Exit Web Fullscreen")),i.setStyle(o,"display","none"),i.setStyle(a,"display","inline-flex")):(i.tooltip(e,s.get("Web Fullscreen")),i.setStyle(o,"display","inline-flex"),i.setStyle(a,"display","none"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lFHYL:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{const{events:{proxy:r},icons:n,i18n:s}=t;i.append(e,n.pip),r(e,"click",(()=>{t.pip=!t.pip})),t.on("pip",(t=>{i.tooltip(e,s.get(t?"Exit PIP Mode":"PIP Mode"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],b8vU1:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const{events:{proxy:r},icons:n,i18n:s}=t,o=i.append(e,n.play),a=i.append(e,n.pause);function l(){i.setStyle(o,"display","flex"),i.setStyle(a,"display","none")}function u(){i.setStyle(o,"display","none"),i.setStyle(a,"display","flex")}i.tooltip(o,s.get("Play")),i.tooltip(a,s.get("Pause")),r(o,"click",(()=>{t.play()})),r(a,"click",(()=>{t.pause()})),t.playing?u():l(),t.on("video:playing",(()=>{u()})),t.on("video:pause",(()=>{l()}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],dRwzT:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r),i.export(r,"getPosFromEvent",(()=>s));var n=e("../utils");function s(e,t){const{$progress:r}=e.template,{left:i}=r.getBoundingClientRect(),s=t.pageX,o=n.clamp(s-i,0,r.clientWidth),a=o/r.clientWidth*e.duration;return{second:a,time:n.secondToTime(a),width:o,percentage:n.clamp(o/r.clientWidth,0,1)}}r.default=function(e){return t=>{const{icons:r,option:i,events:{proxy:o}}=t;return{...e,html:'
',mounted:e=>{let a=!1;const l=n.query(".art-progress-loaded",e),u=n.query(".art-progress-played",e),d=n.query(".art-progress-highlight",e),c=n.query(".art-progress-indicator",e),h=n.query(".art-progress-tip",e);n.setStyle(u,"backgroundColor","var(--theme)");let f=t.constructor.INDICATOR_SIZE;function p(e,t){"loaded"===e&&n.setStyle(l,"width",100*t+"%"),"played"===e&&(n.setStyle(u,"width",100*t+"%"),n.setStyle(c,"left",`calc(${100*t}% - ${f/2}px)`))}r.indicator?(f=t.constructor.INDICATOR_SIZE_ICON,n.append(c,r.indicator)):n.setStyles(c,{backgroundColor:"var(--theme)"}),n.isMobile&&(f=t.constructor.INDICATOR_SIZE_MOBILE,r.indicator&&(f=t.constructor.INDICATOR_SIZE_MOBILE_ICON)),n.setStyles(c,{left:`-${f/2}px`,width:`${f}px`,height:`${f}px`});for(let e=0;e`)}p("loaded",t.loaded),t.on("setBar",((e,t)=>{p(e,t)})),t.on("video:progress",(()=>{p("loaded",t.loaded)})),t.on("video:timeupdate",(()=>{p("played",t.played)})),t.on("video:ended",(()=>{p("played",1)})),n.isMobile||(o(e,"click",(e=>{if(e.target!==c){const{second:r,percentage:i}=s(t,e);p("played",i),t.seek=r}})),o(e,"mousemove",(r=>{n.setStyle(h,"display","block"),n.includeFromEvent(r,d)?function(r){const{width:i}=s(t,r),{text:o}=r.target.dataset;h.innerHTML=o;const a=h.clientWidth;i<=a/2?n.setStyle(h,"left",0):i>e.clientWidth-a/2?n.setStyle(h,"left",e.clientWidth-a+"px"):n.setStyle(h,"left",i-a/2+"px")}(r):function(r){const{width:i,time:o}=s(t,r);h.innerHTML=o;const a=h.clientWidth;i<=a/2?n.setStyle(h,"left",0):i>e.clientWidth-a/2?n.setStyle(h,"left",e.clientWidth-a+"px"):n.setStyle(h,"left",i-a/2+"px")}(r)})),o(e,"mouseout",(()=>{n.setStyle(h,"display","none")})),o(c,"mousedown",(()=>{a=!0})),o(document,"mousemove",(e=>{if(a){const{second:r,percentage:i}=s(t,e);p("played",i),t.seek=r}})),o(document,"mouseup",(()=>{a&&(a=!1)})))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3kkJ1":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Hide Subtitle"),mounted:e=>{const{events:{proxy:r},icons:n,i18n:s,subtitle:o}=t;i.append(e,n.subtitle),r(e,"click",(()=>{o.toggle=!0})),t.on("subtitle",(t=>{i.tooltip(e,s.get(t?"Hide Subtitle":"Show Subtitle"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ltYI1:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,style:{cursor:"auto"},mounted:e=>{function r(){const r=`${i.secondToTime(t.currentTime)} / ${i.secondToTime(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();const n=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;e({...e,mounted:e=>{const{events:{proxy:r},icons:n,i18n:s}=t;let o=!1;const a=t.constructor.VOLUME_PANEL_WIDTH,l=t.constructor.VOLUME_HANDLE_WIDTH,u=i.append(e,n.volume),d=i.append(e,n.volumeClose),c=i.append(e,'
'),h=i.append(c,'
');function f(e){const{left:t}=c.getBoundingClientRect();return i.clamp(e.pageX-t-l/2,0,a-l/2)/(a-l)}function p(e=.7){if(t.muted||0===e)i.setStyle(u,"display","none"),i.setStyle(d,"display","flex"),i.setStyle(h,"left","0");else{const t=(a-l)*e;i.setStyle(u,"display","flex"),i.setStyle(d,"display","none"),i.setStyle(h,"left",`${t}px`)}}i.tooltip(u,s.get("Mute")),i.setStyle(d,"display","none"),i.isMobile&&i.setStyle(c,"display","none"),p(t.volume),t.on("video:volumechange",(()=>{p(t.volume)})),r(u,"click",(()=>{t.muted=!0})),r(d,"click",(()=>{t.muted=!1})),r(c,"click",(e=>{t.muted=!1,t.volume=f(e)})),r(h,"mousedown",(()=>{o=!0})),r(e,"mousemove",(e=>{o&&(t.muted=!1,t.volume=f(e))})),r(document,"mouseup",(()=>{o&&(o=!1)}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lX5UX:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{const{events:{proxy:r},icons:n,i18n:s,setting:o}=t;i.append(e,n.setting),r(e,"click",(()=>{o.toggle=!0})),t.on("setting",(t=>{i.tooltip(e,s.get(t?"Hide Setting":"Show Setting"))}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],lUoGG:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils"),n=e("./progress");r.default=function(e){return t=>({...e,mounted:e=>{const{option:r,template:{$progress:s,$video:o},events:{proxy:a,loadImg:l}}=t;let u=null,d=!1,c=!1;a(s,"mousemove",(async a=>{if(!d){d=!0;const e=await l(r.thumbnails.url);u=e,c=!0}c&&(i.setStyle(e,"display","block"),function(a){const{width:l}=n.getPosFromEvent(t,a),{url:d,number:c,column:h}=r.thumbnails,f=u.naturalWidth/h,p=f/(o.videoWidth/o.videoHeight),m=s.clientWidth/c,g=Math.floor(l/m),v=Math.ceil(g/h)-1,y=g%h||h-1;i.setStyle(e,"backgroundImage",`url(${d})`),i.setStyle(e,"height",`${p}px`),i.setStyle(e,"width",`${f}px`),i.setStyle(e,"backgroundPosition",`-${y*f}px -${v*p}px`),l<=f/2?i.setStyle(e,"left",0):l>s.clientWidth-f/2?i.setStyle(e,"left",s.clientWidth-f+"px"):i.setStyle(e,"left",l-f/2+"px")}(a))})),a(s,"mouseout",(()=>{i.setStyle(e,"display","none")}))}})}},{"../utils":"geSvU","./progress":"dRwzT","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],jvdQ0:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{const{events:{proxy:r},icons:n}=t;i.append(e,n.screenshot),r(e,"click",(()=>{t.screenshot()}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],k9pKK:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>{const r=t.option.quality,i=r.find((e=>e.default))||r[0];return{...e,html:i?i.html:"",selector:r,onSelect(e){t.switchQuality(e.url,e.html)}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aE690:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>({...e,mounted:e=>{const r=i.append(e,''),n=i.append(e,'');t.on("loop",(s=>{s?(i.setStyle(e,"display","block"),i.setStyle(r,"left",`calc(${s[0]/t.duration*100}% - ${r.clientWidth}px)`),i.setStyle(n,"left",s[1]/t.duration*100+"%")):i.setStyle(e,"display","none")}))}})}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7rh9q":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("../utils"),s=e("../utils/component"),o=i.interopDefault(s),a=e("./playbackRate"),l=i.interopDefault(a),u=e("./aspectRatio"),d=i.interopDefault(u),c=e("./flip"),h=i.interopDefault(c),f=e("./info"),p=i.interopDefault(f),m=e("./version"),g=i.interopDefault(m),v=e("./close"),y=i.interopDefault(v);class _ extends o.default{constructor(e){super(e),this.art=e,this.name="contextmenu",this.$parent=e.template.$contextmenu,e.once("video:loadedmetadata",(()=>{n.isMobile||this.init()}))}init(){const{option:e,template:{$player:t,$contextmenu:r},events:{proxy:i}}=this.art;this.add(l.default({disable:!e.playbackRate,name:"playbackRate",index:10})),this.add(d.default({disable:!e.aspectRatio,name:"aspectRatio",index:20})),this.add(h.default({disable:!e.flip,name:"flip",index:30})),this.add(p.default({disable:!1,name:"info",index:40})),this.add(g.default({disable:!1,name:"version",index:50})),this.add(y.default({disable:!1,name:"close",index:60}));for(let t=0;t{e.preventDefault(),this.show=!0;const i=e.clientX,s=e.clientY,{height:o,width:a,left:l,top:u}=t.getBoundingClientRect(),{height:d,width:c}=r.getBoundingClientRect();let h=i-l,f=s-u;i+c>l+a&&(h=a-c),s+d>u+o&&(f=o-d),n.setStyles(r,{top:`${f}px`,left:`${h}px`})})),i(t,"click",(e=>{n.includeFromEvent(e,r)||(this.show=!1)})),this.art.on("blur",(()=>{this.show=!1}))}}r.default=_},{"../utils":"geSvU","../utils/component":"kPHYl","./playbackRate":"9P3rd","./aspectRatio":"3OqVf","./flip":"iMg4Y","./info":"9FFXO","./version":"duhqU","./close":"k3lJQ","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9P3rd":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get("Play Speed")}:0.50.75${r.get("Normal")}1.251.52.0`,click:(e,r)=>{const{value:i}=r.target.dataset;i&&(t.playbackRate=Number(i),e.show=!1)},mounted:e=>{t.on("playbackRate",(t=>{const r=i.queryAll("span",e).find((e=>Number(e.dataset.value)===t));r&&i.inverseClass(r,"art-current")}))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"3OqVf":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get("Aspect Ratio")}:${r.get("Default")}4:316:9`,click:(e,r)=>{const{value:i}=r.target.dataset;i&&(t.aspectRatio=i,e.show=!1)},mounted:e=>{t.on("aspectRatio",(t=>{const r=i.queryAll("span",e).find((e=>e.dataset.value===t));r&&i.inverseClass(r,"art-current")}))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iMg4Y:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get("Video Flip")}:${r.get("Normal")}${r.get("Horizontal")}${r.get("Vertical")}`,click:(e,r)=>{const{value:i}=r.target.dataset;i&&(t.flip=i,e.show=!1)},mounted:e=>{t.on("flip",(t=>{const r=i.queryAll("span",e).find((e=>e.dataset.value===t));r&&i.inverseClass(r,"art-current")}))}}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"9FFXO":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],duhqU:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return{...e,html:'ArtPlayer 4.3.23'}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],k3lJQ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],c896w:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("./utils"),s=e("./utils/component"),o=i.interopDefault(s);class a extends o.default{constructor(e){super(e),this.name="info",e.once("video:loadedmetadata",(()=>{n.isMobile||this.init()}))}init(){const{constructor:e,events:{proxy:t},template:{$infoPanel:r,$infoClose:i,$video:s}}=this.art;t(i,"click",(()=>{this.show=!1}));let o=null;const a=n.queryAll("[data-video]",r)||[];this.art.on("destroy",(()=>{clearTimeout(o)})),function t(){for(let e=0;e{this.init(e.option.subtitle)}))}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video.textTracks[0]}get activeCue(){return this.textTrack.activeCues[0]}style(e,t){const{$subtitle:r}=this.art.template;return"object"==typeof e?n.setStyles(r,e):n.setStyle(r,e,t)}update(){const{$subtitle:e}=this.art.template;e.innerHTML="",this.activeCue&&(e.innerHTML=this.activeCue.text.split(/\r?\n/).map((e=>`

${n.escape(e)}

`)).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}async switch(e,t={}){const{i18n:r,notice:i,option:n}=this.art,s={...n.subtitle,...t,url:e},o=await this.init(s);return t.name&&(i.show=`${r.get("Switch Subtitle")}: ${t.name}`),o}init(e){if(l.default(e,d.default.subtitle),!e.url)return;const{notice:t,events:{proxy:r},template:{$subtitle:i,$video:s,$track:o}}=this.art;if(!o){const e=document.createElement("track");e.default=!0,e.kind="metadata",s.appendChild(e),this.art.template.$track=e,r(this.textTrack,"cuechange",this.update.bind(this))}return this.style(e.style),n.errorHandle(window.fetch,"fetch not support"),fetch(e.url).then((e=>e.arrayBuffer())).then((t=>{n.errorHandle(window.TextDecoder,"TextDecoder not support");const r=new TextDecoder(e.encoding).decode(t);switch(this.art.emit("subtitleLoad",e.url),e.type||n.getExt(e.url)){case"srt":return n.vttToBlob(n.srtToVtt(r));case"ass":return n.vttToBlob(n.assToVtt(r));case"vtt":return n.vttToBlob(r);default:return e.url}})).then((e=>(i.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.art.template.$track.src=e,this.art.emit("subtitleSwitch",e)),e))).catch((e=>{throw t.show=e,e}))}}r.default=c},{"./utils":"geSvU","./utils/component":"kPHYl","option-validator":"hqjoJ","./scheme":"3vPoh","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j2hlX:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("../utils/error"),s=e("./clickInit"),o=i.interopDefault(s),a=e("./hoverInit"),l=i.interopDefault(a),u=e("./mousemoveInit"),d=i.interopDefault(u),c=e("./resizeInit"),h=i.interopDefault(c),f=e("./gestureInit"),p=i.interopDefault(f),m=e("./viewInit"),g=i.interopDefault(m);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),e.whitelist.state&&e.once("video:loadedmetadata",(()=>{o.default(e,this),l.default(e,this),d.default(e,this),h.default(e,this),p.default(e,this),g.default(e,this)}))}proxy(e,t,r,i={}){if(Array.isArray(t))return t.map((t=>this.proxy(e,t,r,i)));e.addEventListener(t,r,i);const n=()=>e.removeEventListener(t,r,i);return this.destroyEvents.push(n),n}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}loadImg(e){return new Promise(((t,r)=>{let i;if(e instanceof HTMLImageElement)i=e;else{if("string"!=typeof e)return r(new n.ArtPlayerError("Unable to get Image"));i=new Image,i.src=e}if(i.complete)return t(i);this.proxy(i,"load",(()=>t(i))),this.proxy(i,"error",(()=>r(new n.ArtPlayerError(`Failed to load Image: ${i.src}`))))}))}destroy(){for(let e=0;e{i.includeFromEvent(t,n)?(e.isFocus=!0,e.emit("focus")):(e.isFocus=!1,e.emit("blur"))}));let o=0;t.proxy(s,"click",(()=>{const t=Date.now();t-o<=r.DB_CLICE_TIME?(e.emit("dblclick"),i.isMobile?e.toggle():e.fullscreen=!e.fullscreen):(e.emit("click"),i.isMobile||e.toggle()),o=t}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aoIIW:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e,t){const{$player:r}=e.template;t.hover(r,(()=>{i.addClass(r,"art-hover"),e.emit("hover",!0)}),(()=>{i.removeClass(r,"art-hover"),e.emit("hover")}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"4WC5c":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(e,t){const{$player:r}=e.template;t.proxy(r,"mousemove",(t=>{e.emit("mousemove",t)}))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7fpan":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e,t){const{notice:r,option:n}=e,s=i.throttle((()=>{e.normalSize&&(e.autoSize=n.autoSize),e.aspectRatioReset=!0,r.show="",e.emit("resize")}),e.constructor.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],(()=>{s()})),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",(()=>{s()}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],ixtiG:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e,t){if(i.isMobile&&!e.option.isLive){const{notice:r,plugins:n,template:{$video:s,$bottom:o,$controls:a}}=e;let l=!1,u=0,d=0,c=0;const h=t=>{if(1===t.touches.length){l=!0;const{clientX:r,clientY:i}=t.touches[0];u=r,d=i,c=e.currentTime}},f=t=>{if(1===t.touches.length&&l&&e.duration){const s=n.autoOrientation&&n.autoOrientation.state,{clientX:o,clientY:a}=t.touches[0],l=i.clamp((o-u)/e.width,-1,1),h=i.clamp((a-d)/e.height,-1,1),f=s?h:l,p=i.clamp(c+e.duration*f/2,0,e.duration);e.seek=p,e.emit("setBar","played",i.clamp(p/e.duration,0,1)),r.show=`${i.secondToTime(p)} / ${i.secondToTime(e.duration)}`}},p=()=>{l&&(u=0,d=0,c=0,l=!1)};t.proxy(o,"touchstart",(e=>{i.includeFromEvent(e,a)||h(e)})),t.proxy(o,"touchmove",f),t.proxy(s,"touchstart",h),t.proxy(s,"touchmove",f),t.proxy(document,"touchend",p)}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5WvmH":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e,t){const{option:r,constructor:n,template:{$container:s}}=e,o=i.throttle((()=>{e.emit("view",i.isInViewport(s,n.SCROLL_GAP))}),n.SCROLL_TIME);t.proxy(window,"scroll",(()=>{o()})),e.on("view",(t=>{r.autoMini&&(e.mini=!t)}))}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aTHWZ:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.once("video:loadedmetadata",(()=>{e.option.hotkey&&!i.isMobile&&this.init()}))}init(){const{proxy:e}=this.art.events;this.add(27,(()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)})),this.add(32,(()=>{this.art.toggle()})),this.add(37,(()=>{this.art.backward=5})),this.add(38,(()=>{this.art.volume+=.1})),this.add(39,(()=>{this.art.forward=5})),this.add(40,(()=>{this.art.volume-=.1})),e(window,"keydown",(e=>{if(this.art.isFocus){const t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r){const t=this.keys[e.keyCode];if(t){e.preventDefault();for(let r=0;r{for(let e=0;e{n.innerText="",i.removeClass(r,"art-notice-show")}),t.NOTICE_TIME)):i.removeClass(r,"art-notice-show")}}},{"./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],iLfmB:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("./utils"),s=e("./utils/component"),o=i.interopDefault(s);class a extends o.default{constructor(e){super(e),this.name="mask";const{template:t,icons:r,events:i}=e;n.append(t.$state,r.state),i.proxy(t.$state,"click",(()=>e.play()))}}r.default=a},{"./utils":"geSvU","./utils/component":"kPHYl","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5lAmI":[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("../utils"),s=e("bundle-text:./loading.svg"),o=i.interopDefault(s),a=e("bundle-text:./state.svg"),l=i.interopDefault(a),u=e("bundle-text:./check.svg"),d=i.interopDefault(u),c=e("bundle-text:./play.svg"),h=i.interopDefault(c),f=e("bundle-text:./pause.svg"),p=i.interopDefault(f),m=e("bundle-text:./volume.svg"),g=i.interopDefault(m),v=e("bundle-text:./volume-close.svg"),y=i.interopDefault(v),_=e("bundle-text:./subtitle.svg"),b=i.interopDefault(_),w=e("bundle-text:./screenshot.svg"),S=i.interopDefault(w),x=e("bundle-text:./setting.svg"),E=i.interopDefault(x),A=e("bundle-text:./arrow-left.svg"),R=i.interopDefault(A),L=e("bundle-text:./arrow-right.svg"),k=i.interopDefault(L),I=e("bundle-text:./playback-rate.svg"),j=i.interopDefault(I),T=e("bundle-text:./aspect-ratio.svg"),O=i.interopDefault(T),M=e("bundle-text:./config.svg"),D=i.interopDefault(M),C=e("bundle-text:./pip.svg"),P=i.interopDefault(C),N=e("bundle-text:./lock.svg"),B=i.interopDefault(N),F=e("bundle-text:./unlock.svg"),U=i.interopDefault(F),z=e("bundle-text:./fullscreen-off.svg"),V=i.interopDefault(z),G=e("bundle-text:./fullscreen-on.svg"),H=i.interopDefault(G),Z=e("bundle-text:./fullscreen-web-off.svg"),W=i.interopDefault(Z),q=e("bundle-text:./fullscreen-web-on.svg"),Y=i.interopDefault(q);r.default=class{constructor(e){const t={loading:o.default,state:l.default,play:h.default,pause:p.default,check:d.default,volume:g.default,volumeClose:y.default,subtitle:b.default,screenshot:S.default,setting:E.default,pip:P.default,arrowLeft:R.default,arrowRight:k.default,playbackRate:j.default,aspectRatio:O.default,config:D.default,lock:B.default,unlock:U.default,fullscreenOff:V.default,fullscreenOn:H.default,fullscreenWebOff:W.default,fullscreenWebOn:Y.default,...e.option.icons};Object.keys(t).forEach((e=>{n.def(this,e,{get:()=>{const r=document.createElement("i");return n.addClass(r,"art-icon"),n.addClass(r,`art-icon-${e}`),n.append(r,t[e]),r}})}))}}},{"../utils":"geSvU","bundle-text:./loading.svg":"hX0lQ","bundle-text:./state.svg":"01U3R","bundle-text:./check.svg":"9jaCP","bundle-text:./play.svg":"invok","bundle-text:./pause.svg":"68285","bundle-text:./volume.svg":"3zSKr","bundle-text:./volume-close.svg":"ft8Zf","bundle-text:./subtitle.svg":"8qaqV","bundle-text:./screenshot.svg":"dfLel","bundle-text:./setting.svg":"j8dnn","bundle-text:./arrow-left.svg":"fMoi9","bundle-text:./arrow-right.svg":"auIjA","bundle-text:./playback-rate.svg":"g3V1U","bundle-text:./aspect-ratio.svg":"3LQJt","bundle-text:./config.svg":"bcTkc","bundle-text:./pip.svg":"jDSoL","bundle-text:./lock.svg":"jqFLt","bundle-text:./unlock.svg":"5qYod","bundle-text:./fullscreen-off.svg":"25MvP","bundle-text:./fullscreen-on.svg":"6CCX4","bundle-text:./fullscreen-web-off.svg":"m9TwS","bundle-text:./fullscreen-web-on.svg":"iWJrW","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],hX0lQ:[function(e,t,r){t.exports=''},{}],"01U3R":[function(e,t,r){t.exports=''},{}],"9jaCP":[function(e,t,r){t.exports=''},{}],invok:[function(e,t,r){t.exports=''},{}],68285:[function(e,t,r){t.exports=''},{}],"3zSKr":[function(e,t,r){t.exports=''},{}],ft8Zf:[function(e,t,r){t.exports=''},{}],"8qaqV":[function(e,t,r){t.exports=''},{}],dfLel:[function(e,t,r){t.exports=''},{}],j8dnn:[function(e,t,r){t.exports=''},{}],fMoi9:[function(e,t,r){t.exports=''},{}],auIjA:[function(e,t,r){t.exports=''},{}],g3V1U:[function(e,t,r){t.exports=''},{}],"3LQJt":[function(e,t,r){t.exports=''},{}],bcTkc:[function(e,t,r){t.exports=''},{}],jDSoL:[function(e,t,r){t.exports=''},{}],jqFLt:[function(e,t,r){t.exports=''},{}],"5qYod":[function(e,t,r){t.exports=''},{}],"25MvP":[function(e,t,r){t.exports=''},{}],"6CCX4":[function(e,t,r){t.exports=''},{}],m9TwS:[function(e,t,r){t.exports=''},{}],iWJrW:[function(e,t,r){t.exports=''},{}],d5XKP:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("./flip"),s=i.interopDefault(n),o=e("./aspectRatio"),a=i.interopDefault(o),l=e("./playbackRate"),u=i.interopDefault(l),d=e("./subtitleOffset"),c=i.interopDefault(d),h=e("../utils/component"),f=i.interopDefault(h),p=e("../utils");function m(e,t,r){for(let i=0;i{t.playbackRate&&this.option.push(u.default(e)),t.aspectRatio&&this.option.push(a.default(e)),t.flip&&this.option.push(s.default(e)),t.subtitleOffset&&this.option.push(c.default(e));for(let e=0;e{this.show&&(this.show=!1,this.init(this.option))})),r(n,"click",(t=>{!this.show||p.includeFromEvent(t,e.controls.setting)||p.includeFromEvent(t,this.$parent)||(this.show=!1,this.init(this.option))})))}add(e){"function"==typeof e?this.option.push(e(this.art)):this.option.push(e),this.cache=new Map,this.events.forEach((e=>e())),this.events=[],this.$parent.innerHTML="",this.option=m(this.option),this.init(this.option)}creatHeader(e){const{icons:t,events:{proxy:r}}=this.art,i=document.createElement("div");p.addClass(i,"art-setting-item"),p.addClass(i,"art-setting-item-back");const n=p.append(i,'
'),s=document.createElement("div");p.addClass(s,"art-setting-item-left-icon"),p.append(s,t.arrowLeft),p.append(n,s),p.append(n,e._parentItem.html);const o=r(i,"click",(()=>{this.init(e._parentList)}));return this.events.push(o),i}creatItem(e){const{icons:t,events:{proxy:r}}=this.art,i=e.selector&&e.selector.length,n=document.createElement("div");p.addClass(n,"art-setting-item"),e.default&&p.addClass(n,"art-current");const s=p.append(n,'
'),o=p.append(n,'
'),a=document.createElement("div");p.addClass(a,"art-setting-item-left-icon"),p.append(a,i?e.icon||t.config:t.check),p.append(s,a),e._$icon=a,p.def(e,"icon",{get:()=>a.innerHTML,set(e){"string"!=typeof e&&"number"!=typeof e||(a.innerHTML=e)}});const l=document.createElement("div");if(p.addClass(l,"art-setting-item-left-text"),p.append(l,e.html||""),p.append(s,l),e._$html=l,p.def(e,"html",{get:()=>l.innerHTML,set(e){"string"!=typeof e&&"number"!=typeof e||(l.innerHTML=e)}}),i){const r=document.createElement("div");p.addClass(r,"art-setting-item-right-tooltip"),p.append(r,e.tooltip||""),p.append(o,r),e._$tooltip=r,p.def(e,"tooltip",{get:()=>r.innerHTML,set(e){"string"!=typeof e&&"number"!=typeof e||(r.innerHTML=e)}});const i=document.createElement("div");p.addClass(i,"art-setting-item-right-icon"),p.append(i,t.arrowRight),p.append(o,i)}const u=r(n,"click",(async t=>{if(i)this.init(e.selector,e.width);else if(p.inverseClass(n,"art-current"),e._parentList&&this.init(e._parentList),e._parentItem&&e._parentItem.onSelect){const r=await e._parentItem.onSelect.call(this.art,e,n,t);e._parentItem._$tooltip&&("string"!=typeof r&&"number"!=typeof r||(e._parentItem._$tooltip.innerHTML=r))}}));return this.events.push(u),n}init(e,t){const{constructor:r}=this.art;if(this.cache.has(e)){const t=this.cache.get(e);p.inverseClass(t,"art-current"),p.setStyle(this.$parent,"width",`${t.dataset.width}px`),p.setStyle(this.$parent,"height",`${t.dataset.height}px`)}else{const i=document.createElement("div");p.addClass(i,"art-setting-panel"),i.dataset.width=t||r.SETTING_WIDTH,i.dataset.height=e.length*r.SETTING_ITEM_HEIGHT,e[0]&&e[0]._parentItem&&(p.append(i,this.creatHeader(e[0])),i.dataset.height=Number(i.dataset.height)+r.SETTING_ITEM_HEIGHT);for(let t=0;te.dataset.value===n));o&&i.inverseClass(o,"art-current")}return{width:n.SETTING_ITEM_WIDTH,html:t.get("Video Flip"),tooltip:t.get(s[e.flip]),icon:r.config,selector:Object.keys(s).map((r=>({value:r,default:r===e.flip,html:t.get(s[r])}))),onSelect(t){e.flip=t.value},mounted:(t,r)=>{o(t,r._$tooltip,e.flip),e.on("flip",(()=>{o(t,r._$tooltip,e.flip)}))}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1gs5B":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:n}=e;function s(e){return"default"===e?t.get("Default"):e}function o(e,t,r){t&&(t.innerText=s(r));const n=i.queryAll(".art-setting-item",e).find((e=>e.dataset.value===r));n&&i.inverseClass(n,"art-current")}return{width:n.SETTING_ITEM_WIDTH,html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:s(e.aspectRatio),selector:["default","4:3","16:9"].map((t=>({value:t,default:t===e.aspectRatio,html:s(t)}))),onSelect(t){e.aspectRatio=t.value},mounted:(t,r)=>{o(t,r._$tooltip,e.aspectRatio),e.on("aspectRatio",(()=>{o(t,r._$tooltip,e.aspectRatio)}))}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j50mh:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:n}=e;function s(e){return 1===e?t.get("Normal"):e}function o(e,t,r){t&&(t.innerText=s(r));const n=i.queryAll(".art-setting-item",e).find((e=>Number(e.dataset.value)===r));n&&i.inverseClass(n,"art-current")}return{width:n.SETTING_ITEM_WIDTH,html:t.get("Play Speed"),tooltip:s(e.playbackRate),icon:r.playbackRate,selector:[.5,.75,1,1.25,1.5,2].map((t=>({value:t,default:t===e.playbackRate,html:s(t)}))),onSelect(t){e.playbackRate=t.value},mounted:(t,r)=>{o(t,r._$tooltip,e.playbackRate),e.on("playbackRate",(()=>{o(t,r._$tooltip,e.playbackRate)}))}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],i17b6:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,icons:r,constructor:n}=e;function s(e){return 0===e?t.get("Normal"):e}function o(e,t,r){t&&(t.innerText=s(r));const n=i.queryAll(".art-setting-item",e).find((e=>Number(e.dataset.value)===r));n&&i.inverseClass(n,"art-current")}return{width:n.SETTING_ITEM_WIDTH,html:t.get("Subtitle Offset"),tooltip:s(e.subtitleOffset),icon:r.subtitle,selector:[-5,-4,-3,-2,-1,0,1,2,3,4,5].map((t=>({value:t,default:t===e.subtitleOffset,html:s(t)}))),onSelect(t){e.subtitleOffset=t.value},mounted:(t,r)=>{o(t,r._$tooltip,e.subtitleOffset),e.on("subtitleOffset",(()=>{o(t,r._$tooltip,e.subtitleOffset)}))}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"5M8nN":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{const t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{const r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{const t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],jWfEd:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("../utils"),s=e("./miniProgressBar"),o=i.interopDefault(s),a=e("./autoOrientation"),l=i.interopDefault(a),u=e("./autoPlayback"),d=i.interopDefault(u),c=e("./fastForward"),h=i.interopDefault(c),f=e("./lock"),p=i.interopDefault(f);r.default=class{constructor(e){this.art=e,this.id=0;const{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(o.default),t.lock&&n.isMobile&&this.add(p.default),t.autoPlayback&&this.add(d.default),t.autoOrientation&&n.isMobile&&this.add(l.default),t.fastForward&&n.isMobile&&!t.isLive&&this.add(h.default);for(let e=0;e{e.layers.add({name:"miniProgressBar",mounted(t){e.on("destroy",(()=>{t.style.display="none"})),e.on("video:timeupdate",(()=>{t.style.width=100*e.played+"%"})),e.on("setBar",((e,r)=>{"played"===e&&(t.style.width=100*r+"%")}))}})})),{name:"miniProgressBar"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aPIVP:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{option:t,constructor:r,template:{$player:n,$video:s}}=e;return e.on("fullscreenWeb",(o=>{if(o){const{videoWidth:t,videoHeight:o}=s,{clientWidth:a,clientHeight:l}=document.documentElement;(t>o&&al)&&setTimeout((()=>{i.setStyle(n,"width",`${l}px`),i.setStyle(n,"height",`${a}px`),i.setStyle(n,"transform-origin","0 0"),i.setStyle(n,"transform",`rotate(90deg) translate(0, -${a}px)`),i.addClass(n,"art-auto-orientation"),e.emit("resize")}),r.MOBILE_AUTO_ORIENTATION_TIME)}else i.hasClass(n,"art-auto-orientation")&&(i.setStyle(n,"width",null),i.setStyle(n,"height",null),i.setStyle(n,"transform",null),i.setStyle(n,"transform-origin",null),i.removeClass(n,"art-auto-orientation"),e.aspectRatioReset=!0,e.autoSize=t.autoSize,e.notice.show="",e.emit("resize"))})),e.on("fullscreen",(async e=>{const t=screen.orientation.type;if(e){const{videoWidth:e,videoHeight:r}=s,{clientWidth:o,clientHeight:a}=document.documentElement;if(e>r&&oa){const e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),i.addClass(n,"art-auto-orientation-fullscreen")}}else i.hasClass(n,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),i.removeClass(n,"art-auto-orientation-fullscreen"))})),{name:"autoOrientation",get state(){return i.hasClass(n,"art-auto-orientation")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],j87OI:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{i18n:t,storage:r,constructor:n,template:{$poster:s}}=e;return e.on("video:timeupdate",(()=>{const t=r.get("times")||{},i=Object.keys(t);i.length>n.AUTO_PLAYBACK_MAX&&delete t[i[0]],t[e.option.url]=e.currentTime,r.set("times",t)})),e.on("ready",(()=>{const n=(r.get("times")||{})[e.option.url];n&&(e.seek=n,i.setStyle(s,"display","none"),e.notice.show=`${t.get("Auto playback at")} ${i.secondToTime(n)}`)})),{name:"autoPlayback",get times(){return r.get("times")||{}},clear:()=>r.del("times")}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"1VTki":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{constructor:t,events:{proxy:r},template:{$player:n,$video:s}}=e;let o=null,a=!1;const l=()=>{clearTimeout(o),a&&(a=!1,e.playbackRate=1,i.removeClass(n,"art-fast-forward"))};return r(s,"touchstart",(r=>{1===r.touches.length&&e.playing&&(o=setTimeout((()=>{a=!0,e.playbackRate=t.FAST_FORWARD_VALUE,i.addClass(n,"art-fast-forward")}),t.FAST_FORWARD_TIME))})),r(document,"touchmove",l),r(document,"touchend",l),{name:"fastForward",get state(){return i.hasClass(n,"art-fast-forward")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],"7BtoE":[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var i=e("../utils");r.default=function(e){const{layers:t,icons:r,template:{$player:n}}=e;return t.add({name:"lock",mounted(t){const n=i.append(t,r.lock),s=i.append(t,r.unlock);i.setStyle(n,"display","none"),e.on("lock",(e=>{e?(i.setStyle(n,"display","inline-flex"),i.setStyle(s,"display","none")):(i.setStyle(n,"display","none"),i.setStyle(s,"display","inline-flex"))}))},click(){i.hasClass(n,"art-lock")?(i.removeClass(n,"art-lock"),e.emit("lock",!1)):(i.addClass(n,"art-lock"),e.emit("lock",!0))}}),{name:"lock",get state(){return i.hasClass(n,"art-lock")}}}},{"../utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],aafSd:[function(e,t,r){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(e){this.art=e,this.init()}get current(){return this.art.option.ads[this.index]}get prev(){return this.art.option.ads[this.index-1]}get next(){return this.art.option.ads[this.index+1]}init(){this.index=0,this.isEnd=!1,this.playing=!1,this.urlCache=this.art.option.url,this.current&&(this.playing=!0,this.play(this.current))}play(e={}){this.isEnd||(this.art.switchUrl(e.url),this.art.once("video:timeupdate",(()=>{this.art.emit("ads:start",e)})),this.art.once("video:ended",(()=>{const e=this.next;e?(this.index+=1,this.play(e)):this.end()})))}end(){this.isEnd||(this.isEnd=!0,this.playing=!1,this.art.option.url=this.urlCache,this.art.switchUrl(this.urlCache),this.art.emit("ads:end"))}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}],fkUkB:[function(e,t,r){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(r);var n=e("./config"),s=i.interopDefault(n),o=e("./utils");r.default=class{constructor(e){const{option:t,events:{proxy:r},template:{$video:i}}=e;for(let t=0;t{e.emit(`video:${t.type}`,t)}));Object.keys(t.moreVideoAttr).forEach((e=>{i[e]=t.moreVideoAttr[e]})),t.muted&&(i.muted=t.muted),t.volume&&(i.volume=o.clamp(t.volume,0,1)),t.poster&&(i.poster=t.poster),t.autoplay&&(i.autoplay=t.autoplay),t.playsInline&&(i.playsInline=!0,i["webkit-playsinline"]=!0);const n=t.type||o.getExt(t.url),a=t.customType[n];n&&a?(a(i,t.url,e),e.emit("customType",n)):(i.src=t.url,e.emit("url",i.src))}}},{"./config":"eksZR","./utils":"geSvU","@parcel/transformer-js/src/esmodule-helpers.js":"fRZO2"}]},["6SN6P"])},510:e=>{var t;self,t=function(){return function(){var e={"./node_modules/es6-promise/dist/es6-promise.js":function(e,t,r){e.exports=function(){"use strict";function e(e){return"function"==typeof e}var t=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=0,n=void 0,s=void 0,o=function(e,t){f[i]=e,f[i+1]=t,2===(i+=2)&&(s?s(p):_())};var a="undefined"!=typeof window?window:void 0,l=a||{},u=l.MutationObserver||l.WebKitMutationObserver,d="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),c="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function h(){var e=setTimeout;return function(){return e(p,1)}}var f=new Array(1e3);function p(){for(var e=0;e0&&o.length>n&&!o.warned){o.warned=!0;var d=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");d.name="MaxListenersExceededWarning",d.emitter=e,d.type=t,d.count=o.length,u=d,console&&console.warn&&console.warn(u)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function c(e,t,r){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},n=d.bind(i);return n.listener=r,i.wrapFn=n,n}function h(e,t,r){var i=e._events;if(void 0===i)return[];var n=i[t];return void 0===n?[]:"function"==typeof n?r?[n.listener||n]:[n]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var l=s[e];if(void 0===l)return!1;if("function"==typeof l)i(l,this,t);else{var u=l.length,d=p(l,u);for(r=0;r=0;s--)if(r[s]===t||r[s].listener===t){o=r[s].listener,n=s;break}if(n<0)return this;0===n?r.shift():function(e,t){for(;t+1=0;i--)this.removeListener(e,t[i]);return this},s.prototype.listeners=function(e){return h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},s.prototype.listenerCount=f,s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},"./node_modules/webworkify-webpack/index.js":function(e,t,r){function i(e){var t={};function r(i){if(t[i])return t[i].exports;var n=t[i]={i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=e,r.c=t,r.i=function(e){return e},r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},r.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r.oe=function(e){throw console.error(e),e};var i=r(r.s=ENTRY_MODULE);return i.default||i}var n="\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)";function s(e){return(e+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function o(e,t,i){var o={};o[i]=[];var a=t.toString(),l=a.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);if(!l)return o;for(var u,d=l[1],c=new RegExp("(\\\\n|\\W)"+s(d)+n,"g");u=c.exec(a);)"dll-reference"!==u[3]&&o[i].push(u[3]);for(c=new RegExp("\\("+s(d)+'\\("(dll-reference\\s([\\.|\\-|\\+|\\w|/|@]+))"\\)\\)'+n,"g");u=c.exec(a);)e[u[2]]||(o[i].push(u[1]),e[u[2]]=r(u[1]).m),o[u[2]]=o[u[2]]||[],o[u[2]].push(u[4]);for(var h,f=Object.keys(o),p=0;p0}),!1)}e.exports=function(e,t){t=t||{};var n={main:r.m},s=t.all?{main:Object.keys(n.main)}:function(e,t){for(var r={main:[t]},i={main:[]},n={main:{}};a(r);)for(var s=Object.keys(r),l=0;l=e[n]&&t0&&e[0].originalDts=t[n].dts&&et[i].lastSample.originalDts&&e=t[i].lastSample.originalDts&&(i===t.length-1||i0&&(n=this._searchNearestSegmentBefore(r.originalBeginDts)+1),this._lastAppendLocation=n,this._list.splice(n,0,r)},e.prototype.getLastSegmentBefore=function(e){var t=this._searchNearestSegmentBefore(e);return t>=0?this._list[t]:null},e.prototype.getLastSampleBefore=function(e){var t=this.getLastSegmentBefore(e);return null!=t?t.lastSample:null},e.prototype.getLastSyncPointBefore=function(e){for(var t=this._searchNearestSegmentBefore(e),r=this._list[t].syncPoints;0===r.length&&t>0;)t--,r=this._list[t].syncPoints;return r.length>0?r[r.length-1]:null},e}()},"./src/core/mse-controller.js":function(e,t,r){"use strict";r.r(t);var i=r("./node_modules/events/events.js"),n=r.n(i),s=r("./src/utils/logger.js"),o=r("./src/utils/browser.js"),a=r("./src/core/mse-events.js"),l=r("./src/core/media-segment-info.js"),u=r("./src/utils/exception.js"),d=function(){function e(e){this.TAG="MSEController",this._config=e,this._emitter=new(n()),this._config.isLive&&null==this._config.autoCleanupSourceBuffer&&(this._config.autoCleanupSourceBuffer=!0),this.e={onSourceOpen:this._onSourceOpen.bind(this),onSourceEnded:this._onSourceEnded.bind(this),onSourceClose:this._onSourceClose.bind(this),onSourceBufferError:this._onSourceBufferError.bind(this),onSourceBufferUpdateEnd:this._onSourceBufferUpdateEnd.bind(this)},this._mediaSource=null,this._mediaSourceObjectURL=null,this._mediaElement=null,this._isBufferFull=!1,this._hasPendingEos=!1,this._requireSetMediaDuration=!1,this._pendingMediaDuration=0,this._pendingSourceBufferInit=[],this._mimeTypes={video:null,audio:null},this._sourceBuffers={video:null,audio:null},this._lastInitSegments={video:null,audio:null},this._pendingSegments={video:[],audio:[]},this._pendingRemoveRanges={video:[],audio:[]},this._idrList=new l.IDRSampleList}return e.prototype.destroy=function(){(this._mediaElement||this._mediaSource)&&this.detachMediaElement(),this.e=null,this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.attachMediaElement=function(e){if(this._mediaSource)throw new u.IllegalStateException("MediaSource has been attached to an HTMLMediaElement!");var t=this._mediaSource=new window.MediaSource;t.addEventListener("sourceopen",this.e.onSourceOpen),t.addEventListener("sourceended",this.e.onSourceEnded),t.addEventListener("sourceclose",this.e.onSourceClose),this._mediaElement=e,this._mediaSourceObjectURL=window.URL.createObjectURL(this._mediaSource),e.src=this._mediaSourceObjectURL},e.prototype.detachMediaElement=function(){if(this._mediaSource){var e=this._mediaSource;for(var t in this._sourceBuffers){var r=this._pendingSegments[t];r.splice(0,r.length),this._pendingSegments[t]=null,this._pendingRemoveRanges[t]=null,this._lastInitSegments[t]=null;var i=this._sourceBuffers[t];if(i){if("closed"!==e.readyState){try{e.removeSourceBuffer(i)}catch(e){s.default.e(this.TAG,e.message)}i.removeEventListener("error",this.e.onSourceBufferError),i.removeEventListener("updateend",this.e.onSourceBufferUpdateEnd)}this._mimeTypes[t]=null,this._sourceBuffers[t]=null}}if("open"===e.readyState)try{e.endOfStream()}catch(e){s.default.e(this.TAG,e.message)}e.removeEventListener("sourceopen",this.e.onSourceOpen),e.removeEventListener("sourceended",this.e.onSourceEnded),e.removeEventListener("sourceclose",this.e.onSourceClose),this._pendingSourceBufferInit=[],this._isBufferFull=!1,this._idrList.clear(),this._mediaSource=null}this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src"),this._mediaElement=null),this._mediaSourceObjectURL&&(window.URL.revokeObjectURL(this._mediaSourceObjectURL),this._mediaSourceObjectURL=null)},e.prototype.appendInitSegment=function(e,t){if(!this._mediaSource||"open"!==this._mediaSource.readyState)return this._pendingSourceBufferInit.push(e),void this._pendingSegments[e.type].push(e);var r=e,i=""+r.container;r.codec&&r.codec.length>0&&(i+=";codecs="+r.codec);var n=!1;if(s.default.v(this.TAG,"Received Initialization Segment, mimeType: "+i),this._lastInitSegments[r.type]=r,i!==this._mimeTypes[r.type]){if(this._mimeTypes[r.type])s.default.v(this.TAG,"Notice: "+r.type+" mimeType changed, origin: "+this._mimeTypes[r.type]+", target: "+i);else{n=!0;try{var l=this._sourceBuffers[r.type]=this._mediaSource.addSourceBuffer(i);l.addEventListener("error",this.e.onSourceBufferError),l.addEventListener("updateend",this.e.onSourceBufferUpdateEnd)}catch(e){return s.default.e(this.TAG,e.message),void this._emitter.emit(a.default.ERROR,{code:e.code,msg:e.message})}}this._mimeTypes[r.type]=i}t||this._pendingSegments[r.type].push(r),n||this._sourceBuffers[r.type]&&!this._sourceBuffers[r.type].updating&&this._doAppendSegments(),o.default.safari&&"audio/mpeg"===r.container&&r.mediaDuration>0&&(this._requireSetMediaDuration=!0,this._pendingMediaDuration=r.mediaDuration/1e3,this._updateMediaSourceDuration())},e.prototype.appendMediaSegment=function(e){var t=e;this._pendingSegments[t.type].push(t),this._config.autoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanupSourceBuffer();var r=this._sourceBuffers[t.type];!r||r.updating||this._hasPendingRemoveRanges()||this._doAppendSegments()},e.prototype.seek=function(e){for(var t in this._sourceBuffers)if(this._sourceBuffers[t]){var r=this._sourceBuffers[t];if("open"===this._mediaSource.readyState)try{r.abort()}catch(e){s.default.e(this.TAG,e.message)}this._idrList.clear();var i=this._pendingSegments[t];if(i.splice(0,i.length),"closed"!==this._mediaSource.readyState){for(var n=0;n=1&&e-i.start(0)>=this._config.autoCleanupMaxBackwardDuration)return!0}}return!1},e.prototype._doCleanupSourceBuffer=function(){var e=this._mediaElement.currentTime;for(var t in this._sourceBuffers){var r=this._sourceBuffers[t];if(r){for(var i=r.buffered,n=!1,s=0;s=this._config.autoCleanupMaxBackwardDuration){n=!0;var l=e-this._config.autoCleanupMinBackwardDuration;this._pendingRemoveRanges[t].push({start:o,end:l})}}else a0&&(isNaN(t)||r>t)&&(s.default.v(this.TAG,"Update MediaSource duration from "+t+" to "+r),this._mediaSource.duration=r),this._requireSetMediaDuration=!1,this._pendingMediaDuration=0}},e.prototype._doRemoveRanges=function(){for(var e in this._pendingRemoveRanges)if(this._sourceBuffers[e]&&!this._sourceBuffers[e].updating)for(var t=this._sourceBuffers[e],r=this._pendingRemoveRanges[e];r.length&&!t.updating;){var i=r.shift();t.remove(i.start,i.end)}},e.prototype._doAppendSegments=function(){var e=this._pendingSegments;for(var t in e)if(this._sourceBuffers[t]&&!this._sourceBuffers[t].updating&&e[t].length>0){var r=e[t].shift();if(r.timestampOffset){var i=this._sourceBuffers[t].timestampOffset,n=r.timestampOffset/1e3;Math.abs(i-n)>.1&&(s.default.v(this.TAG,"Update MPEG audio timestampOffset from "+i+" to "+n),this._sourceBuffers[t].timestampOffset=n),delete r.timestampOffset}if(!r.data||0===r.data.byteLength)continue;try{this._sourceBuffers[t].appendBuffer(r.data),this._isBufferFull=!1,"video"===t&&r.hasOwnProperty("info")&&this._idrList.appendArray(r.info.syncPoints)}catch(e){this._pendingSegments[t].unshift(r),22===e.code?(this._isBufferFull||this._emitter.emit(a.default.BUFFER_FULL),this._isBufferFull=!0):(s.default.e(this.TAG,e.message),this._emitter.emit(a.default.ERROR,{code:e.code,msg:e.message}))}}},e.prototype._onSourceOpen=function(){if(s.default.v(this.TAG,"MediaSource onSourceOpen"),this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._pendingSourceBufferInit.length>0)for(var e=this._pendingSourceBufferInit;e.length;){var t=e.shift();this.appendInitSegment(t,!0)}this._hasPendingSegments()&&this._doAppendSegments(),this._emitter.emit(a.default.SOURCE_OPEN)},e.prototype._onSourceEnded=function(){s.default.v(this.TAG,"MediaSource onSourceEnded")},e.prototype._onSourceClose=function(){s.default.v(this.TAG,"MediaSource onSourceClose"),this._mediaSource&&null!=this.e&&(this._mediaSource.removeEventListener("sourceopen",this.e.onSourceOpen),this._mediaSource.removeEventListener("sourceended",this.e.onSourceEnded),this._mediaSource.removeEventListener("sourceclose",this.e.onSourceClose))},e.prototype._hasPendingSegments=function(){var e=this._pendingSegments;return e.video.length>0||e.audio.length>0},e.prototype._hasPendingRemoveRanges=function(){var e=this._pendingRemoveRanges;return e.video.length>0||e.audio.length>0},e.prototype._onSourceBufferUpdateEnd=function(){this._requireSetMediaDuration?this._updateMediaSourceDuration():this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()?this._doAppendSegments():this._hasPendingEos&&this.endOfStream(),this._emitter.emit(a.default.UPDATE_END)},e.prototype._onSourceBufferError=function(e){s.default.e(this.TAG,"SourceBuffer Error: "+e)},e}();t.default=d},"./src/core/mse-events.js":function(e,t,r){"use strict";r.r(t),t.default={ERROR:"error",SOURCE_OPEN:"source_open",UPDATE_END:"update_end",BUFFER_FULL:"buffer_full"}},"./src/core/transmuxer.js":function(e,t,r){"use strict";r.r(t);var i=r("./node_modules/events/events.js"),n=r.n(i),s=r("./node_modules/webworkify-webpack/index.js"),o=r.n(s),a=r("./src/utils/logger.js"),l=r("./src/utils/logging-control.js"),u=r("./src/core/transmuxing-controller.js"),d=r("./src/core/transmuxing-events.js"),c=r("./src/core/media-info.js"),h=function(){function e(e,t){if(this.TAG="Transmuxer",this._emitter=new(n()),t.enableWorker&&"undefined"!=typeof Worker)try{this._worker=o()("./src/core/transmuxing-worker.js"),this._workerDestroying=!1,this._worker.addEventListener("message",this._onWorkerMessage.bind(this)),this._worker.postMessage({cmd:"init",param:[e,t]}),this.e={onLoggingConfigChanged:this._onLoggingConfigChanged.bind(this)},l.default.registerListener(this.e.onLoggingConfigChanged),this._worker.postMessage({cmd:"logging_config",param:l.default.getConfig()})}catch(r){a.default.e(this.TAG,"Error while initialize transmuxing worker, fallback to inline transmuxing"),this._worker=null,this._controller=new u.default(e,t)}else this._controller=new u.default(e,t);if(this._controller){var r=this._controller;r.on(d.default.IO_ERROR,this._onIOError.bind(this)),r.on(d.default.DEMUX_ERROR,this._onDemuxError.bind(this)),r.on(d.default.INIT_SEGMENT,this._onInitSegment.bind(this)),r.on(d.default.MEDIA_SEGMENT,this._onMediaSegment.bind(this)),r.on(d.default.LOADING_COMPLETE,this._onLoadingComplete.bind(this)),r.on(d.default.RECOVERED_EARLY_EOF,this._onRecoveredEarlyEof.bind(this)),r.on(d.default.MEDIA_INFO,this._onMediaInfo.bind(this)),r.on(d.default.METADATA_ARRIVED,this._onMetaDataArrived.bind(this)),r.on(d.default.SCRIPTDATA_ARRIVED,this._onScriptDataArrived.bind(this)),r.on(d.default.STATISTICS_INFO,this._onStatisticsInfo.bind(this)),r.on(d.default.RECOMMEND_SEEKPOINT,this._onRecommendSeekpoint.bind(this))}}return e.prototype.destroy=function(){this._worker?this._workerDestroying||(this._workerDestroying=!0,this._worker.postMessage({cmd:"destroy"}),l.default.removeListener(this.e.onLoggingConfigChanged),this.e=null):(this._controller.destroy(),this._controller=null),this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.hasWorker=function(){return null!=this._worker},e.prototype.open=function(){this._worker?this._worker.postMessage({cmd:"start"}):this._controller.start()},e.prototype.close=function(){this._worker?this._worker.postMessage({cmd:"stop"}):this._controller.stop()},e.prototype.seek=function(e){this._worker?this._worker.postMessage({cmd:"seek",param:e}):this._controller.seek(e)},e.prototype.pause=function(){this._worker?this._worker.postMessage({cmd:"pause"}):this._controller.pause()},e.prototype.resume=function(){this._worker?this._worker.postMessage({cmd:"resume"}):this._controller.resume()},e.prototype._onInitSegment=function(e,t){var r=this;Promise.resolve().then((function(){r._emitter.emit(d.default.INIT_SEGMENT,e,t)}))},e.prototype._onMediaSegment=function(e,t){var r=this;Promise.resolve().then((function(){r._emitter.emit(d.default.MEDIA_SEGMENT,e,t)}))},e.prototype._onLoadingComplete=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(d.default.LOADING_COMPLETE)}))},e.prototype._onRecoveredEarlyEof=function(){var e=this;Promise.resolve().then((function(){e._emitter.emit(d.default.RECOVERED_EARLY_EOF)}))},e.prototype._onMediaInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.MEDIA_INFO,e)}))},e.prototype._onMetaDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.METADATA_ARRIVED,e)}))},e.prototype._onScriptDataArrived=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.SCRIPTDATA_ARRIVED,e)}))},e.prototype._onStatisticsInfo=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.STATISTICS_INFO,e)}))},e.prototype._onIOError=function(e,t){var r=this;Promise.resolve().then((function(){r._emitter.emit(d.default.IO_ERROR,e,t)}))},e.prototype._onDemuxError=function(e,t){var r=this;Promise.resolve().then((function(){r._emitter.emit(d.default.DEMUX_ERROR,e,t)}))},e.prototype._onRecommendSeekpoint=function(e){var t=this;Promise.resolve().then((function(){t._emitter.emit(d.default.RECOMMEND_SEEKPOINT,e)}))},e.prototype._onLoggingConfigChanged=function(e){this._worker&&this._worker.postMessage({cmd:"logging_config",param:e})},e.prototype._onWorkerMessage=function(e){var t=e.data,r=t.data;if("destroyed"===t.msg||this._workerDestroying)return this._workerDestroying=!1,this._worker.terminate(),void(this._worker=null);switch(t.msg){case d.default.INIT_SEGMENT:case d.default.MEDIA_SEGMENT:this._emitter.emit(t.msg,r.type,r.data);break;case d.default.LOADING_COMPLETE:case d.default.RECOVERED_EARLY_EOF:this._emitter.emit(t.msg);break;case d.default.MEDIA_INFO:Object.setPrototypeOf(r,c.default.prototype),this._emitter.emit(t.msg,r);break;case d.default.METADATA_ARRIVED:case d.default.SCRIPTDATA_ARRIVED:case d.default.STATISTICS_INFO:this._emitter.emit(t.msg,r);break;case d.default.IO_ERROR:case d.default.DEMUX_ERROR:this._emitter.emit(t.msg,r.type,r.info);break;case d.default.RECOMMEND_SEEKPOINT:this._emitter.emit(t.msg,r);break;case"logcat_callback":a.default.emitter.emit("log",r.type,r.logcat)}},e}();t.default=h},"./src/core/transmuxing-controller.js":function(e,t,r){"use strict";r.r(t);var i=r("./node_modules/events/events.js"),n=r.n(i),s=r("./src/utils/logger.js"),o=r("./src/utils/browser.js"),a=r("./src/core/media-info.js"),l=r("./src/demux/flv-demuxer.js"),u=r("./src/remux/mp4-remuxer.js"),d=r("./src/demux/demux-errors.js"),c=r("./src/io/io-controller.js"),h=r("./src/core/transmuxing-events.js"),f=function(){function e(e,t){this.TAG="TransmuxingController",this._emitter=new(n()),this._config=t,e.segments||(e.segments=[{duration:e.duration,filesize:e.filesize,url:e.url}]),"boolean"!=typeof e.cors&&(e.cors=!0),"boolean"!=typeof e.withCredentials&&(e.withCredentials=!1),this._mediaDataSource=e,this._currentSegmentIndex=0;var r=0;this._mediaDataSource.segments.forEach((function(i){i.timestampBase=r,r+=i.duration,i.cors=e.cors,i.withCredentials=e.withCredentials,t.referrerPolicy&&(i.referrerPolicy=t.referrerPolicy)})),isNaN(r)||this._mediaDataSource.duration===r||(this._mediaDataSource.duration=r),this._mediaInfo=null,this._demuxer=null,this._remuxer=null,this._ioctl=null,this._pendingSeekTime=null,this._pendingResolveSeekPoint=null,this._statisticsReporter=null}return e.prototype.destroy=function(){this._mediaInfo=null,this._mediaDataSource=null,this._statisticsReporter&&this._disableStatisticsReporter(),this._ioctl&&(this._ioctl.destroy(),this._ioctl=null),this._demuxer&&(this._demuxer.destroy(),this._demuxer=null),this._remuxer&&(this._remuxer.destroy(),this._remuxer=null),this._emitter.removeAllListeners(),this._emitter=null},e.prototype.on=function(e,t){this._emitter.addListener(e,t)},e.prototype.off=function(e,t){this._emitter.removeListener(e,t)},e.prototype.start=function(){this._loadSegment(0),this._enableStatisticsReporter()},e.prototype._loadSegment=function(e,t){this._currentSegmentIndex=e;var r=this._mediaDataSource.segments[e],i=this._ioctl=new c.default(r,this._config,e);i.onError=this._onIOException.bind(this),i.onSeeked=this._onIOSeeked.bind(this),i.onComplete=this._onIOComplete.bind(this),i.onRedirect=this._onIORedirect.bind(this),i.onRecoveredEarlyEof=this._onIORecoveredEarlyEof.bind(this),t?this._demuxer.bindDataSource(this._ioctl):i.onDataArrival=this._onInitChunkArrival.bind(this),i.open(t)},e.prototype.stop=function(){this._internalAbort(),this._disableStatisticsReporter()},e.prototype._internalAbort=function(){this._ioctl&&(this._ioctl.destroy(),this._ioctl=null)},e.prototype.pause=function(){this._ioctl&&this._ioctl.isWorking()&&(this._ioctl.pause(),this._disableStatisticsReporter())},e.prototype.resume=function(){this._ioctl&&this._ioctl.isPaused()&&(this._ioctl.resume(),this._enableStatisticsReporter())},e.prototype.seek=function(e){if(null!=this._mediaInfo&&this._mediaInfo.isSeekable()){var t=this._searchSegmentIndexContains(e);if(t===this._currentSegmentIndex){var r=this._mediaInfo.segments[t];if(null==r)this._pendingSeekTime=e;else{var i=r.getNearestKeyframe(e);this._remuxer.seek(i.milliseconds),this._ioctl.seek(i.fileposition),this._pendingResolveSeekPoint=i.milliseconds}}else{var n=this._mediaInfo.segments[t];null==n?(this._pendingSeekTime=e,this._internalAbort(),this._remuxer.seek(),this._remuxer.insertDiscontinuity(),this._loadSegment(t)):(i=n.getNearestKeyframe(e),this._internalAbort(),this._remuxer.seek(e),this._remuxer.insertDiscontinuity(),this._demuxer.resetMediaInfo(),this._demuxer.timestampBase=this._mediaDataSource.segments[t].timestampBase,this._loadSegment(t,i.fileposition),this._pendingResolveSeekPoint=i.milliseconds,this._reportSegmentMediaInfo(t))}this._enableStatisticsReporter()}},e.prototype._searchSegmentIndexContains=function(e){for(var t=this._mediaDataSource.segments,r=t.length-1,i=0;i0)this._demuxer.bindDataSource(this._ioctl),this._demuxer.timestampBase=this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase,n=this._demuxer.parseChunks(e,t);else if((i=l.default.probe(e)).match){this._demuxer=new l.default(i,this._config),this._remuxer||(this._remuxer=new u.default(this._config));var o=this._mediaDataSource;null==o.duration||isNaN(o.duration)||(this._demuxer.overridedDuration=o.duration),"boolean"==typeof o.hasAudio&&(this._demuxer.overridedHasAudio=o.hasAudio),"boolean"==typeof o.hasVideo&&(this._demuxer.overridedHasVideo=o.hasVideo),this._demuxer.timestampBase=o.segments[this._currentSegmentIndex].timestampBase,this._demuxer.onError=this._onDemuxException.bind(this),this._demuxer.onMediaInfo=this._onMediaInfo.bind(this),this._demuxer.onMetaDataArrived=this._onMetaDataArrived.bind(this),this._demuxer.onScriptDataArrived=this._onScriptDataArrived.bind(this),this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)),this._remuxer.onInitSegment=this._onRemuxerInitSegmentArrival.bind(this),this._remuxer.onMediaSegment=this._onRemuxerMediaSegmentArrival.bind(this),n=this._demuxer.parseChunks(e,t)}else i=null,s.default.e(this.TAG,"Non-FLV, Unsupported media type!"),Promise.resolve().then((function(){r._internalAbort()})),this._emitter.emit(h.default.DEMUX_ERROR,d.default.FORMAT_UNSUPPORTED,"Non-FLV, Unsupported media type"),n=0;return n},e.prototype._onMediaInfo=function(e){var t=this;null==this._mediaInfo&&(this._mediaInfo=Object.assign({},e),this._mediaInfo.keyframesIndex=null,this._mediaInfo.segments=[],this._mediaInfo.segmentCount=this._mediaDataSource.segments.length,Object.setPrototypeOf(this._mediaInfo,a.default.prototype));var r=Object.assign({},e);Object.setPrototypeOf(r,a.default.prototype),this._mediaInfo.segments[this._currentSegmentIndex]=r,this._reportSegmentMediaInfo(this._currentSegmentIndex),null!=this._pendingSeekTime&&Promise.resolve().then((function(){var e=t._pendingSeekTime;t._pendingSeekTime=null,t.seek(e)}))},e.prototype._onMetaDataArrived=function(e){this._emitter.emit(h.default.METADATA_ARRIVED,e)},e.prototype._onScriptDataArrived=function(e){this._emitter.emit(h.default.SCRIPTDATA_ARRIVED,e)},e.prototype._onIOSeeked=function(){this._remuxer.insertDiscontinuity()},e.prototype._onIOComplete=function(e){var t=e+1;t0&&r[0].originalDts===i&&(i=r[0].pts),this._emitter.emit(h.default.RECOMMEND_SEEKPOINT,i)}},e.prototype._enableStatisticsReporter=function(){null==this._statisticsReporter&&(this._statisticsReporter=self.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval))},e.prototype._disableStatisticsReporter=function(){this._statisticsReporter&&(self.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype._reportSegmentMediaInfo=function(e){var t=this._mediaInfo.segments[e],r=Object.assign({},t);r.duration=this._mediaInfo.duration,r.segmentCount=this._mediaInfo.segmentCount,delete r.segments,delete r.keyframesIndex,this._emitter.emit(h.default.MEDIA_INFO,r)},e.prototype._reportStatisticsInfo=function(){var e={};e.url=this._ioctl.currentURL,e.hasRedirect=this._ioctl.hasRedirect,e.hasRedirect&&(e.redirectedURL=this._ioctl.currentRedirectedURL),e.speed=this._ioctl.currentSpeed,e.loaderType=this._ioctl.loaderType,e.currentSegmentIndex=this._currentSegmentIndex,e.totalSegmentCount=this._mediaDataSource.segments.length,this._emitter.emit(h.default.STATISTICS_INFO,e)},e}();t.default=f},"./src/core/transmuxing-events.js":function(e,t,r){"use strict";r.r(t),t.default={IO_ERROR:"io_error",DEMUX_ERROR:"demux_error",INIT_SEGMENT:"init_segment",MEDIA_SEGMENT:"media_segment",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info",RECOMMEND_SEEKPOINT:"recommend_seekpoint"}},"./src/core/transmuxing-worker.js":function(e,t,r){"use strict";r.r(t);var i=r("./src/utils/logging-control.js"),n=r("./src/utils/polyfill.js"),s=r("./src/core/transmuxing-controller.js"),o=r("./src/core/transmuxing-events.js");t.default=function(e){var t=null,r=function(t,r){e.postMessage({msg:"logcat_callback",data:{type:t,logcat:r}})}.bind(this);function a(t,r){var i={msg:o.default.INIT_SEGMENT,data:{type:t,data:r}};e.postMessage(i,[r.data])}function l(t,r){var i={msg:o.default.MEDIA_SEGMENT,data:{type:t,data:r}};e.postMessage(i,[r.data])}function u(){var t={msg:o.default.LOADING_COMPLETE};e.postMessage(t)}function d(){var t={msg:o.default.RECOVERED_EARLY_EOF};e.postMessage(t)}function c(t){var r={msg:o.default.MEDIA_INFO,data:t};e.postMessage(r)}function h(t){var r={msg:o.default.METADATA_ARRIVED,data:t};e.postMessage(r)}function f(t){var r={msg:o.default.SCRIPTDATA_ARRIVED,data:t};e.postMessage(r)}function p(t){var r={msg:o.default.STATISTICS_INFO,data:t};e.postMessage(r)}function m(t,r){e.postMessage({msg:o.default.IO_ERROR,data:{type:t,info:r}})}function g(t,r){e.postMessage({msg:o.default.DEMUX_ERROR,data:{type:t,info:r}})}function v(t){e.postMessage({msg:o.default.RECOMMEND_SEEKPOINT,data:t})}n.default.install(),e.addEventListener("message",(function(n){switch(n.data.cmd){case"init":(t=new s.default(n.data.param[0],n.data.param[1])).on(o.default.IO_ERROR,m.bind(this)),t.on(o.default.DEMUX_ERROR,g.bind(this)),t.on(o.default.INIT_SEGMENT,a.bind(this)),t.on(o.default.MEDIA_SEGMENT,l.bind(this)),t.on(o.default.LOADING_COMPLETE,u.bind(this)),t.on(o.default.RECOVERED_EARLY_EOF,d.bind(this)),t.on(o.default.MEDIA_INFO,c.bind(this)),t.on(o.default.METADATA_ARRIVED,h.bind(this)),t.on(o.default.SCRIPTDATA_ARRIVED,f.bind(this)),t.on(o.default.STATISTICS_INFO,p.bind(this)),t.on(o.default.RECOMMEND_SEEKPOINT,v.bind(this));break;case"destroy":t&&(t.destroy(),t=null),e.postMessage({msg:"destroyed"});break;case"start":t.start();break;case"stop":t.stop();break;case"seek":t.seek(n.data.param);break;case"pause":t.pause();break;case"resume":t.resume();break;case"logging_config":var y=n.data.param;i.default.applyConfig(y),!0===y.enableCallback?i.default.addLogListener(r):i.default.removeLogListener(r)}}))}},"./src/demux/amf-parser.js":function(e,t,r){"use strict";r.r(t);var i,n=r("./src/utils/logger.js"),s=r("./src/utils/utf8-conv.js"),o=r("./src/utils/exception.js"),a=(i=new ArrayBuffer(2),new DataView(i).setInt16(0,256,!0),256===new Int16Array(i)[0]),l=function(){function e(){}return e.parseScriptData=function(t,r,i){var s={};try{var o=e.parseValue(t,r,i),a=e.parseValue(t,r+o.size,i-o.size);s[o.data]=a.data}catch(e){n.default.e("AMF",e.toString())}return s},e.parseObject=function(t,r,i){if(i<3)throw new o.IllegalStateException("Data not enough when parse ScriptDataObject");var n=e.parseString(t,r,i),s=e.parseValue(t,r+n.size,i-n.size),a=s.objectEnd;return{data:{name:n.data,value:s.data},size:n.size+s.size,objectEnd:a}},e.parseVariable=function(t,r,i){return e.parseObject(t,r,i)},e.parseString=function(e,t,r){if(r<2)throw new o.IllegalStateException("Data not enough when parse String");var i=new DataView(e,t,r).getUint16(0,!a);return{data:i>0?(0,s.default)(new Uint8Array(e,t+2,i)):"",size:2+i}},e.parseLongString=function(e,t,r){if(r<4)throw new o.IllegalStateException("Data not enough when parse LongString");var i=new DataView(e,t,r).getUint32(0,!a);return{data:i>0?(0,s.default)(new Uint8Array(e,t+4,i)):"",size:4+i}},e.parseDate=function(e,t,r){if(r<10)throw new o.IllegalStateException("Data size invalid when parse Date");var i=new DataView(e,t,r),n=i.getFloat64(0,!a),s=i.getInt16(8,!a);return{data:new Date(n+=60*s*1e3),size:10}},e.parseValue=function(t,r,i){if(i<1)throw new o.IllegalStateException("Data not enough when parse Value");var s,l=new DataView(t,r,i),u=1,d=l.getUint8(0),c=!1;try{switch(d){case 0:s=l.getFloat64(1,!a),u+=8;break;case 1:s=!!l.getUint8(1),u+=1;break;case 2:var h=e.parseString(t,r+1,i-1);s=h.data,u+=h.size;break;case 3:s={};var f=0;for(9==(16777215&l.getUint32(i-4,!a))&&(f=3);u32)throw new i.InvalidArgumentException("ExpGolomb: readBits() bits exceeded max 32bits!");if(e<=this._current_word_bits_left){var t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}var r=this._current_word_bits_left?this._current_word:0;r>>>=32-this._current_word_bits_left;var n=e-this._current_word_bits_left;this._fillCurrentWord();var s=Math.min(n,this._current_word_bits_left),o=this._current_word>>>32-s;return this._current_word<<=s,this._current_word_bits_left-=s,r<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()},e.prototype.readUEG=function(){var e=this._skipLeadingZero();return this.readBits(e+1)-1},e.prototype.readSEG=function(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)},e}();t.default=n},"./src/demux/flv-demuxer.js":function(e,t,r){"use strict";r.r(t);var i=r("./src/utils/logger.js"),n=r("./src/demux/amf-parser.js"),s=r("./src/demux/sps-parser.js"),o=r("./src/demux/demux-errors.js"),a=r("./src/core/media-info.js"),l=r("./src/utils/exception.js"),u=function(){function e(e,t){var r;this.TAG="FLVDemuxer",this._config=t,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null,this._dataOffset=e.dataOffset,this._firstParse=!0,this._dispatch=!1,this._hasAudio=e.hasAudioTrack,this._hasVideo=e.hasVideoTrack,this._hasAudioFlagOverrided=!1,this._hasVideoFlagOverrided=!1,this._audioInitialMetadataDispatched=!1,this._videoInitialMetadataDispatched=!1,this._mediaInfo=new a.default,this._mediaInfo.hasAudio=this._hasAudio,this._mediaInfo.hasVideo=this._hasVideo,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._naluLengthSize=4,this._timestampBase=0,this._timescale=1e3,this._duration=0,this._durationOverrided=!1,this._referenceFrameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3},this._flvSoundRateTable=[5500,11025,22050,44100,48e3],this._mpegSamplingRates=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],this._mpegAudioV10SampleRateTable=[44100,48e3,32e3,0],this._mpegAudioV20SampleRateTable=[22050,24e3,16e3,0],this._mpegAudioV25SampleRateTable=[11025,12e3,8e3,0],this._mpegAudioL1BitRateTable=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],this._mpegAudioL2BitRateTable=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],this._mpegAudioL3BitRateTable=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],this._videoTrack={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this._audioTrack={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._littleEndian=(r=new ArrayBuffer(2),new DataView(r).setInt16(0,256,!0),256===new Int16Array(r)[0])}return e.prototype.destroy=function(){this._mediaInfo=null,this._metadata=null,this._audioMetadata=null,this._videoMetadata=null,this._videoTrack=null,this._audioTrack=null,this._onError=null,this._onMediaInfo=null,this._onMetaDataArrived=null,this._onScriptDataArrived=null,this._onTrackMetadata=null,this._onDataAvailable=null},e.probe=function(e){var t=new Uint8Array(e),r={match:!1};if(70!==t[0]||76!==t[1]||86!==t[2]||1!==t[3])return r;var i,n=(4&t[4])>>>2!=0,s=0!=(1&t[4]),o=(i=t)[5]<<24|i[6]<<16|i[7]<<8|i[8];return o<9?r:{match:!0,consumed:o,dataOffset:o,hasAudioTrack:n,hasVideoTrack:s}},e.prototype.bindDataSource=function(e){return e.onDataArrival=this.parseChunks.bind(this),this},Object.defineProperty(e.prototype,"onTrackMetadata",{get:function(){return this._onTrackMetadata},set:function(e){this._onTrackMetadata=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMediaInfo",{get:function(){return this._onMediaInfo},set:function(e){this._onMediaInfo=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMetaDataArrived",{get:function(){return this._onMetaDataArrived},set:function(e){this._onMetaDataArrived=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onScriptDataArrived",{get:function(){return this._onScriptDataArrived},set:function(e){this._onScriptDataArrived=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataAvailable",{get:function(){return this._onDataAvailable},set:function(e){this._onDataAvailable=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"timestampBase",{get:function(){return this._timestampBase},set:function(e){this._timestampBase=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedDuration",{get:function(){return this._duration},set:function(e){this._durationOverrided=!0,this._duration=e,this._mediaInfo.duration=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedHasAudio",{set:function(e){this._hasAudioFlagOverrided=!0,this._hasAudio=e,this._mediaInfo.hasAudio=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overridedHasVideo",{set:function(e){this._hasVideoFlagOverrided=!0,this._hasVideo=e,this._mediaInfo.hasVideo=e},enumerable:!1,configurable:!0}),e.prototype.resetMediaInfo=function(){this._mediaInfo=new a.default},e.prototype._isInitialMetadataDispatched=function(){return this._hasAudio&&this._hasVideo?this._audioInitialMetadataDispatched&&this._videoInitialMetadataDispatched:this._hasAudio&&!this._hasVideo?this._audioInitialMetadataDispatched:!(this._hasAudio||!this._hasVideo)&&this._videoInitialMetadataDispatched},e.prototype.parseChunks=function(t,r){if(!(this._onError&&this._onMediaInfo&&this._onTrackMetadata&&this._onDataAvailable))throw new l.IllegalStateException("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified");var n=0,s=this._littleEndian;if(0===r){if(!(t.byteLength>13))return 0;n=e.probe(t).dataOffset}for(this._firstParse&&(this._firstParse=!1,r+n!==this._dataOffset&&i.default.w(this.TAG,"First time parsing but chunk byteStart invalid!"),0!==(o=new DataView(t,n)).getUint32(0,!s)&&i.default.w(this.TAG,"PrevTagSize0 !== 0 !!!"),n+=4);nt.byteLength)break;var a=o.getUint8(0),u=16777215&o.getUint32(0,!s);if(n+11+u+4>t.byteLength)break;if(8===a||9===a||18===a){var d=o.getUint8(4),c=o.getUint8(5),h=o.getUint8(6)|c<<8|d<<16|o.getUint8(7)<<24;0!=(16777215&o.getUint32(7,!s))&&i.default.w(this.TAG,"Meet tag which has StreamID != 0!");var f=n+11;switch(a){case 8:this._parseAudioData(t,f,u,h);break;case 9:this._parseVideoData(t,f,u,h,r+n);break;case 18:this._parseScriptData(t,f,u)}var p=o.getUint32(11+u,!s);p!==11+u&&i.default.w(this.TAG,"Invalid PrevTagSize "+p),n+=11+u+4}else i.default.w(this.TAG,"Unsupported tag type "+a+", skipped"),n+=11+u+4}return this._isInitialMetadataDispatched()&&this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack),n},e.prototype._parseScriptData=function(e,t,r){var s=n.default.parseScriptData(e,t,r);if(s.hasOwnProperty("onMetaData")){if(null==s.onMetaData||"object"!=typeof s.onMetaData)return void i.default.w(this.TAG,"Invalid onMetaData structure!");this._metadata&&i.default.w(this.TAG,"Found another onMetaData tag!"),this._metadata=s;var o=this._metadata.onMetaData;if(this._onMetaDataArrived&&this._onMetaDataArrived(Object.assign({},o)),"boolean"==typeof o.hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=o.hasAudio,this._mediaInfo.hasAudio=this._hasAudio),"boolean"==typeof o.hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=o.hasVideo,this._mediaInfo.hasVideo=this._hasVideo),"number"==typeof o.audiodatarate&&(this._mediaInfo.audioDataRate=o.audiodatarate),"number"==typeof o.videodatarate&&(this._mediaInfo.videoDataRate=o.videodatarate),"number"==typeof o.width&&(this._mediaInfo.width=o.width),"number"==typeof o.height&&(this._mediaInfo.height=o.height),"number"==typeof o.duration){if(!this._durationOverrided){var a=Math.floor(o.duration*this._timescale);this._duration=a,this._mediaInfo.duration=a}}else this._mediaInfo.duration=0;if("number"==typeof o.framerate){var l=Math.floor(1e3*o.framerate);if(l>0){var u=l/1e3;this._referenceFrameRate.fixed=!0,this._referenceFrameRate.fps=u,this._referenceFrameRate.fps_num=l,this._referenceFrameRate.fps_den=1e3,this._mediaInfo.fps=u}}if("object"==typeof o.keyframes){this._mediaInfo.hasKeyframesIndex=!0;var d=o.keyframes;this._mediaInfo.keyframesIndex=this._parseKeyframesIndex(d),o.keyframes=null}else this._mediaInfo.hasKeyframesIndex=!1;this._dispatch=!1,this._mediaInfo.metadata=o,i.default.v(this.TAG,"Parsed onMetaData"),this._mediaInfo.isComplete()&&this._onMediaInfo(this._mediaInfo)}Object.keys(s).length>0&&this._onScriptDataArrived&&this._onScriptDataArrived(Object.assign({},s))},e.prototype._parseKeyframesIndex=function(e){for(var t=[],r=[],i=1;i>>4;if(2===a||10===a){var l=0,u=(12&s)>>>2;if(u>=0&&u<=4){l=this._flvSoundRateTable[u];var d=1&s,c=this._audioMetadata,h=this._audioTrack;if(c||(!1===this._hasAudio&&!1===this._hasAudioFlagOverrided&&(this._hasAudio=!0,this._mediaInfo.hasAudio=!0),(c=this._audioMetadata={}).type="audio",c.id=h.id,c.timescale=this._timescale,c.duration=this._duration,c.audioSampleRate=l,c.channelCount=0===d?1:2),10===a){var f=this._parseAACAudioData(e,t+1,r-1);if(null==f)return;if(0===f.packetType){c.config&&i.default.w(this.TAG,"Found another AudioSpecificConfig!");var p=f.data;c.audioSampleRate=p.samplingRate,c.channelCount=p.channelCount,c.codec=p.codec,c.originalCodec=p.originalCodec,c.config=p.config,c.refSampleDuration=1024/c.audioSampleRate*c.timescale,i.default.v(this.TAG,"Parsed AudioSpecificConfig"),this._isInitialMetadataDispatched()?this._dispatch&&(this._audioTrack.length||this._videoTrack.length)&&this._onDataAvailable(this._audioTrack,this._videoTrack):this._audioInitialMetadataDispatched=!0,this._dispatch=!1,this._onTrackMetadata("audio",c),(v=this._mediaInfo).audioCodec=c.originalCodec,v.audioSampleRate=c.audioSampleRate,v.audioChannelCount=c.channelCount,v.hasVideo?null!=v.videoCodec&&(v.mimeType='video/x-flv; codecs="'+v.videoCodec+","+v.audioCodec+'"'):v.mimeType='video/x-flv; codecs="'+v.audioCodec+'"',v.isComplete()&&this._onMediaInfo(v)}else if(1===f.packetType){var m=this._timestampBase+n,g={unit:f.data,length:f.data.byteLength,dts:m,pts:m};h.samples.push(g),h.length+=f.data.length}else i.default.e(this.TAG,"Flv: Unsupported AAC data type "+f.packetType)}else if(2===a){if(!c.codec){var v;if(null==(p=this._parseMP3AudioData(e,t+1,r-1,!0)))return;c.audioSampleRate=p.samplingRate,c.channelCount=p.channelCount,c.codec=p.codec,c.originalCodec=p.originalCodec,c.refSampleDuration=1152/c.audioSampleRate*c.timescale,i.default.v(this.TAG,"Parsed MPEG Audio Frame Header"),this._audioInitialMetadataDispatched=!0,this._onTrackMetadata("audio",c),(v=this._mediaInfo).audioCodec=c.codec,v.audioSampleRate=c.audioSampleRate,v.audioChannelCount=c.channelCount,v.audioDataRate=p.bitRate,v.hasVideo?null!=v.videoCodec&&(v.mimeType='video/x-flv; codecs="'+v.videoCodec+","+v.audioCodec+'"'):v.mimeType='video/x-flv; codecs="'+v.audioCodec+'"',v.isComplete()&&this._onMediaInfo(v)}var y=this._parseMP3AudioData(e,t+1,r-1,!1);if(null==y)return;m=this._timestampBase+n;var _={unit:y,length:y.byteLength,dts:m,pts:m};h.samples.push(_),h.length+=y.length}}else this._onError(o.default.FORMAT_ERROR,"Flv: Invalid audio sample rate idx: "+u)}else this._onError(o.default.CODEC_UNSUPPORTED,"Flv: Unsupported audio codec idx: "+a)}},e.prototype._parseAACAudioData=function(e,t,r){if(!(r<=1)){var n={},s=new Uint8Array(e,t,r);return n.packetType=s[0],0===s[0]?n.data=this._parseAACAudioSpecificConfig(e,t+1,r-1):n.data=s.subarray(1),n}i.default.w(this.TAG,"Flv: Invalid AAC packet, missing AACPacketType or/and Data!")},e.prototype._parseAACAudioSpecificConfig=function(e,t,r){var i,n,s=new Uint8Array(e,t,r),a=null,l=0,u=null;if(l=i=s[0]>>>3,(n=(7&s[0])<<1|s[1]>>>7)<0||n>=this._mpegSamplingRates.length)this._onError(o.default.FORMAT_ERROR,"Flv: AAC invalid sampling frequency index!");else{var d=this._mpegSamplingRates[n],c=(120&s[1])>>>3;if(!(c<0||c>=8)){5===l&&(u=(7&s[1])<<1|s[2]>>>7,s[2]);var h=self.navigator.userAgent.toLowerCase();return-1!==h.indexOf("firefox")?n>=6?(l=5,a=new Array(4),u=n-3):(l=2,a=new Array(2),u=n):-1!==h.indexOf("android")?(l=2,a=new Array(2),u=n):(l=5,u=n,a=new Array(4),n>=6?u=n-3:1===c&&(l=2,a=new Array(2),u=n)),a[0]=l<<3,a[0]|=(15&n)>>>1,a[1]=(15&n)<<7,a[1]|=(15&c)<<3,5===l&&(a[1]|=(15&u)>>>1,a[2]=(1&u)<<7,a[2]|=8,a[3]=0),{config:a,samplingRate:d,channelCount:c,codec:"mp4a.40."+l,originalCodec:"mp4a.40."+i}}this._onError(o.default.FORMAT_ERROR,"Flv: AAC invalid channel configuration")}},e.prototype._parseMP3AudioData=function(e,t,r,n){if(!(r<4)){this._littleEndian;var s=new Uint8Array(e,t,r),o=null;if(n){if(255!==s[0])return;var a=s[1]>>>3&3,l=(6&s[1])>>1,u=(240&s[2])>>>4,d=(12&s[2])>>>2,c=3!=(s[3]>>>6&3)?2:1,h=0,f=0;switch(a){case 0:h=this._mpegAudioV25SampleRateTable[d];break;case 2:h=this._mpegAudioV20SampleRateTable[d];break;case 3:h=this._mpegAudioV10SampleRateTable[d]}switch(l){case 1:u>>4,u=15&a;7===u?this._parseAVCVideoPacket(e,t+1,r-1,n,s,l):this._onError(o.default.CODEC_UNSUPPORTED,"Flv: Unsupported codec in video frame: "+u)}},e.prototype._parseAVCVideoPacket=function(e,t,r,n,s,a){if(r<4)i.default.w(this.TAG,"Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime");else{var l=this._littleEndian,u=new DataView(e,t,r),d=u.getUint8(0),c=(16777215&u.getUint32(0,!l))<<8>>8;if(0===d)this._parseAVCDecoderConfigurationRecord(e,t+4,r-4);else if(1===d)this._parseAVCVideoData(e,t+4,r-4,n,s,a,c);else if(2!==d)return void this._onError(o.default.FORMAT_ERROR,"Flv: Invalid video packet type "+d)}},e.prototype._parseAVCDecoderConfigurationRecord=function(e,t,r){if(r<7)i.default.w(this.TAG,"Flv: Invalid AVCDecoderConfigurationRecord, lack of data!");else{var n=this._videoMetadata,a=this._videoTrack,l=this._littleEndian,u=new DataView(e,t,r);n?void 0!==n.avcc&&i.default.w(this.TAG,"Found another AVCDecoderConfigurationRecord!"):(!1===this._hasVideo&&!1===this._hasVideoFlagOverrided&&(this._hasVideo=!0,this._mediaInfo.hasVideo=!0),(n=this._videoMetadata={}).type="video",n.id=a.id,n.timescale=this._timescale,n.duration=this._duration);var d=u.getUint8(0),c=u.getUint8(1);if(u.getUint8(2),u.getUint8(3),1===d&&0!==c)if(this._naluLengthSize=1+(3&u.getUint8(4)),3===this._naluLengthSize||4===this._naluLengthSize){var h=31&u.getUint8(5);if(0!==h){h>1&&i.default.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = "+h);for(var f=6,p=0;p1&&i.default.w(this.TAG,"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = "+A),f++,p=0;p=r){i.default.w(this.TAG,"Malformed Nalu near timestamp "+p+", offset = "+h+", dataSize = "+r);break}var g=u.getUint32(h,!l);if(3===f&&(g>>>=8),g>r-f)return void i.default.w(this.TAG,"Malformed Nalus near timestamp "+p+", NaluSize > DataSize!");var v=31&u.getUint8(h+f);5===v&&(m=!0);var y=new Uint8Array(e,t+h,f+g),_={type:v,data:y};d.push(_),c+=y.byteLength,h+=f+g}if(d.length){var b=this._videoTrack,w={units:d,length:c,isKeyframe:m,dts:p,cts:a,pts:p+a};m&&(w.fileposition=s),b.samples.push(w),b.length+=c}},e}();t.default=u},"./src/demux/sps-parser.js":function(e,t,r){"use strict";r.r(t);var i=r("./src/demux/exp-golomb.js"),n=function(){function e(){}return e._ebsp2rbsp=function(e){for(var t=e,r=t.byteLength,i=new Uint8Array(r),n=0,s=0;s=2&&3===t[s]&&0===t[s-1]&&0===t[s-2]||(i[n]=t[s],n++);return new Uint8Array(i.buffer,0,n)},e.parseSPS=function(t){var r=e._ebsp2rbsp(t),n=new i.default(r);n.readByte();var s=n.readByte();n.readByte();var o=n.readByte();n.readUEG();var a=e.getProfileString(s),l=e.getLevelString(o),u=1,d=420,c=8;if((100===s||110===s||122===s||244===s||44===s||83===s||86===s||118===s||128===s||138===s||144===s)&&(3===(u=n.readUEG())&&n.readBits(1),u<=3&&(d=[0,420,422,444][u]),c=n.readUEG()+8,n.readUEG(),n.readBits(1),n.readBool()))for(var h=3!==u?8:12,f=0;f0&&j<16?(E=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][j-1],A=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][j-1]):255===j&&(E=n.readByte()<<8|n.readByte(),A=n.readByte()<<8|n.readByte())}if(n.readBool()&&n.readBool(),n.readBool()&&(n.readBits(4),n.readBool()&&n.readBits(24)),n.readBool()&&(n.readUEG(),n.readUEG()),n.readBool()){var T=n.readBits(32),O=n.readBits(32);L=n.readBool(),R=(k=O)/(I=2*T)}}var M=1;1===E&&1===A||(M=E/A);var D=0,C=0;0===u?(D=1,C=2-_):(D=3===u?1:2,C=(1===u?2:1)*(2-_));var P=16*(v+1),N=16*(y+1)*(2-_);P-=(b+w)*D,N-=(S+x)*C;var B=Math.ceil(P*M);return n.destroy(),n=null,{profile_string:a,level_string:l,bit_depth:c,ref_frames:g,chroma_format:d,chroma_format_string:e.getChromaFormatString(d),frame_rate:{fixed:L,fps:R,fps_den:I,fps_num:k},sar_ratio:{width:E,height:A},codec_size:{width:P,height:N},present_size:{width:B,height:N}}},e._skipScalingList=function(e,t){for(var r=8,i=8,n=0;n=15048,t=!n.default.msedge||e;return self.fetch&&self.ReadableStream&&t}catch(e){return!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),e.prototype.destroy.call(this)},t.prototype.open=function(e,t){var r=this;this._dataSource=e,this._range=t;var i=e.url;this._config.reuseRedirectedURL&&null!=e.redirectedURL&&(i=e.redirectedURL);var n=this._seekHandler.getConfig(i,t),a=new self.Headers;if("object"==typeof n.headers){var l=n.headers;for(var u in l)l.hasOwnProperty(u)&&a.append(u,l[u])}var d={method:"GET",headers:a,mode:"cors",cache:"default",referrerPolicy:"no-referrer-when-downgrade"};if("object"==typeof this._config.headers)for(var u in this._config.headers)a.append(u,this._config.headers[u]);!1===e.cors&&(d.mode="same-origin"),e.withCredentials&&(d.credentials="include"),e.referrerPolicy&&(d.referrerPolicy=e.referrerPolicy),self.AbortController&&(this._abortController=new self.AbortController,d.signal=this._abortController.signal),this._status=s.LoaderStatus.kConnecting,self.fetch(n.url,d).then((function(e){if(r._requestAbort)return r._status=s.LoaderStatus.kIdle,void e.body.cancel();if(e.ok&&e.status>=200&&e.status<=299){if(e.url!==n.url&&r._onURLRedirect){var t=r._seekHandler.removeURLParameters(e.url);r._onURLRedirect(t)}var i=e.headers.get("Content-Length");return null!=i&&(r._contentLength=parseInt(i),0!==r._contentLength&&r._onContentLengthKnown&&r._onContentLengthKnown(r._contentLength)),r._pump.call(r,e.body.getReader())}if(r._status=s.LoaderStatus.kError,!r._onError)throw new o.RuntimeException("FetchStreamLoader: Http code invalid, "+e.status+" "+e.statusText);r._onError(s.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:e.status,msg:e.statusText})})).catch((function(e){if(!r._abortController||!r._abortController.signal.aborted){if(r._status=s.LoaderStatus.kError,!r._onError)throw e;r._onError(s.LoaderErrors.EXCEPTION,{code:-1,msg:e.message})}}))},t.prototype.abort=function(){if(this._requestAbort=!0,(this._status!==s.LoaderStatus.kBuffering||!n.default.chrome)&&this._abortController)try{this._abortController.abort()}catch(e){}},t.prototype._pump=function(e){var t=this;return e.read().then((function(r){if(r.done)if(null!==t._contentLength&&t._receivedLength0&&(this._stashInitialSize=t.stashInitialSize),this._stashUsed=0,this._stashSize=this._stashInitialSize,this._bufferSize=3145728,this._stashBuffer=new ArrayBuffer(this._bufferSize),this._stashByteStart=0,this._enableStash=!0,!1===t.enableStashBuffer&&(this._enableStash=!1),this._loader=null,this._loaderClass=null,this._seekHandler=null,this._dataSource=e,this._isWebSocketURL=/wss?:\/\/(.+?)/.test(e.url),this._refTotalLength=e.filesize?e.filesize:null,this._totalLength=this._refTotalLength,this._fullRequestFlag=!1,this._currentRange=null,this._redirectedURL=null,this._speedNormalized=0,this._speedSampler=new n.default,this._speedNormalizeList=[64,128,256,384,512,768,1024,1536,2048,3072,4096],this._isEarlyEofReconnecting=!1,this._paused=!1,this._resumeFrom=0,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._selectSeekHandler(),this._selectLoader(),this._createLoader()}return e.prototype.destroy=function(){this._loader.isWorking()&&this._loader.abort(),this._loader.destroy(),this._loader=null,this._loaderClass=null,this._dataSource=null,this._stashBuffer=null,this._stashUsed=this._stashSize=this._bufferSize=this._stashByteStart=0,this._currentRange=null,this._speedSampler=null,this._isEarlyEofReconnecting=!1,this._onDataArrival=null,this._onSeeked=null,this._onError=null,this._onComplete=null,this._onRedirect=null,this._onRecoveredEarlyEof=null,this._extraData=null},e.prototype.isWorking=function(){return this._loader&&this._loader.isWorking()&&!this._paused},e.prototype.isPaused=function(){return this._paused},Object.defineProperty(e.prototype,"status",{get:function(){return this._loader.status},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"extraData",{get:function(){return this._extraData},set:function(e){this._extraData=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onDataArrival",{get:function(){return this._onDataArrival},set:function(e){this._onDataArrival=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onSeeked",{get:function(){return this._onSeeked},set:function(e){this._onSeeked=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onError",{get:function(){return this._onError},set:function(e){this._onError=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onComplete",{get:function(){return this._onComplete},set:function(e){this._onComplete=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onRedirect",{get:function(){return this._onRedirect},set:function(e){this._onRedirect=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onRecoveredEarlyEof",{get:function(){return this._onRecoveredEarlyEof},set:function(e){this._onRecoveredEarlyEof=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentURL",{get:function(){return this._dataSource.url},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"hasRedirect",{get:function(){return null!=this._redirectedURL||null!=this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentRedirectedURL",{get:function(){return this._redirectedURL||this._dataSource.redirectedURL},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentSpeed",{get:function(){return this._loaderClass===l.default?this._loader.currentSpeed:this._speedSampler.lastSecondKBps},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"loaderType",{get:function(){return this._loader.type},enumerable:!1,configurable:!0}),e.prototype._selectSeekHandler=function(){var e=this._config;if("range"===e.seekType)this._seekHandler=new d.default(this._config.rangeLoadZeroStart);else if("param"===e.seekType){var t=e.seekParamStart||"bstart",r=e.seekParamEnd||"bend";this._seekHandler=new c.default(t,r)}else{if("custom"!==e.seekType)throw new h.InvalidArgumentException("Invalid seekType in config: "+e.seekType);if("function"!=typeof e.customSeekHandler)throw new h.InvalidArgumentException("Custom seekType specified in config but invalid customSeekHandler!");this._seekHandler=new e.customSeekHandler}},e.prototype._selectLoader=function(){if(null!=this._config.customLoader)this._loaderClass=this._config.customLoader;else if(this._isWebSocketURL)this._loaderClass=u.default;else if(o.default.isSupported())this._loaderClass=o.default;else if(a.default.isSupported())this._loaderClass=a.default;else{if(!l.default.isSupported())throw new h.RuntimeException("Your browser doesn't support xhr with arraybuffer responseType!");this._loaderClass=l.default}},e.prototype._createLoader=function(){this._loader=new this._loaderClass(this._seekHandler,this._config),!1===this._loader.needStashBuffer&&(this._enableStash=!1),this._loader.onContentLengthKnown=this._onContentLengthKnown.bind(this),this._loader.onURLRedirect=this._onURLRedirect.bind(this),this._loader.onDataArrival=this._onLoaderChunkArrival.bind(this),this._loader.onComplete=this._onLoaderComplete.bind(this),this._loader.onError=this._onLoaderError.bind(this)},e.prototype.open=function(e){this._currentRange={from:0,to:-1},e&&(this._currentRange.from=e),this._speedSampler.reset(),e||(this._fullRequestFlag=!0),this._loader.open(this._dataSource,Object.assign({},this._currentRange))},e.prototype.abort=function(){this._loader.abort(),this._paused&&(this._paused=!1,this._resumeFrom=0)},e.prototype.pause=function(){this.isWorking()&&(this._loader.abort(),0!==this._stashUsed?(this._resumeFrom=this._stashByteStart,this._currentRange.to=this._stashByteStart-1):this._resumeFrom=this._currentRange.to+1,this._stashUsed=0,this._stashByteStart=0,this._paused=!0)},e.prototype.resume=function(){if(this._paused){this._paused=!1;var e=this._resumeFrom;this._resumeFrom=0,this._internalSeek(e,!0)}},e.prototype.seek=function(e){this._paused=!1,this._stashUsed=0,this._stashByteStart=0,this._internalSeek(e,!0)},e.prototype._internalSeek=function(e,t){this._loader.isWorking()&&this._loader.abort(),this._flushStashBuffer(t),this._loader.destroy(),this._loader=null;var r={from:e,to:-1};this._currentRange={from:r.from,to:-1},this._speedSampler.reset(),this._stashSize=this._stashInitialSize,this._createLoader(),this._loader.open(this._dataSource,r),this._onSeeked&&this._onSeeked()},e.prototype.updateUrl=function(e){if(!e||"string"!=typeof e||0===e.length)throw new h.InvalidArgumentException("Url must be a non-empty string!");this._dataSource.url=e},e.prototype._expandBuffer=function(e){for(var t=this._stashSize;t+10485760){var i=new Uint8Array(this._stashBuffer,0,this._stashUsed);new Uint8Array(r,0,t).set(i,0)}this._stashBuffer=r,this._bufferSize=t}},e.prototype._normalizeSpeed=function(e){var t=this._speedNormalizeList,r=t.length-1,i=0,n=0,s=r;if(e=t[i]&&e=512&&e<=1024?Math.floor(1.5*e):2*e)>8192&&(t=8192);var r=1024*t+1048576;this._bufferSize0){var s=this._stashBuffer.slice(0,this._stashUsed);(l=this._dispatchChunks(s,this._stashByteStart))0&&(u=new Uint8Array(s,l),a.set(u,0),this._stashUsed=u.byteLength,this._stashByteStart+=l):(this._stashUsed=0,this._stashByteStart+=l),this._stashUsed+e.byteLength>this._bufferSize&&(this._expandBuffer(this._stashUsed+e.byteLength),a=new Uint8Array(this._stashBuffer,0,this._bufferSize)),a.set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength}else(l=this._dispatchChunks(e,t))this._bufferSize&&(this._expandBuffer(o),a=new Uint8Array(this._stashBuffer,0,this._bufferSize)),a.set(new Uint8Array(e,l),0),this._stashUsed+=o,this._stashByteStart=t+l);else if(0===this._stashUsed){var o;(l=this._dispatchChunks(e,t))this._bufferSize&&this._expandBuffer(o),(a=new Uint8Array(this._stashBuffer,0,this._bufferSize)).set(new Uint8Array(e,l),0),this._stashUsed+=o,this._stashByteStart=t+l)}else{var a,l;if(this._stashUsed+e.byteLength>this._bufferSize&&this._expandBuffer(this._stashUsed+e.byteLength),(a=new Uint8Array(this._stashBuffer,0,this._bufferSize)).set(new Uint8Array(e),this._stashUsed),this._stashUsed+=e.byteLength,(l=this._dispatchChunks(this._stashBuffer.slice(0,this._stashUsed),this._stashByteStart))0){var u=new Uint8Array(this._stashBuffer,l);a.set(u,0)}this._stashUsed-=l,this._stashByteStart+=l}}},e.prototype._flushStashBuffer=function(e){if(this._stashUsed>0){var t=this._stashBuffer.slice(0,this._stashUsed),r=this._dispatchChunks(t,this._stashByteStart),n=t.byteLength-r;if(r0){var s=new Uint8Array(this._stashBuffer,0,this._bufferSize),o=new Uint8Array(t,r);s.set(o,0),this._stashUsed=o.byteLength,this._stashByteStart+=r}return 0}i.default.w(this.TAG,n+" bytes unconsumed data remain when flush buffer, dropped")}return this._stashUsed=0,this._stashByteStart=0,n}return 0},e.prototype._onLoaderComplete=function(e,t){this._flushStashBuffer(!0),this._onComplete&&this._onComplete(this._extraData)},e.prototype._onLoaderError=function(e,t){switch(i.default.e(this.TAG,"Loader error, code = "+t.code+", msg = "+t.msg),this._flushStashBuffer(!1),this._isEarlyEofReconnecting&&(this._isEarlyEofReconnecting=!1,e=s.LoaderErrors.UNRECOVERABLE_EARLY_EOF),e){case s.LoaderErrors.EARLY_EOF:if(!this._config.isLive&&this._totalLength){var r=this._currentRange.to+1;return void(r0)for(var s=r.split("&"),o=0;o0;a[0]!==this._startName&&a[0]!==this._endName&&(l&&(n+="&"),n+=s[o])}return 0===n.length?t:t+"?"+n},e}();t.default=i},"./src/io/range-seek-handler.js":function(e,t,r){"use strict";r.r(t);var i=function(){function e(e){this._zeroStart=e||!1}return e.prototype.getConfig=function(e,t){var r={};if(0!==t.from||-1!==t.to){var i;i=-1!==t.to?"bytes="+t.from.toString()+"-"+t.to.toString():"bytes="+t.from.toString()+"-",r.Range=i}else this._zeroStart&&(r.Range="bytes=0-");return{url:e,headers:r}},e.prototype.removeURLParameters=function(e){return e},e}();t.default=i},"./src/io/speed-sampler.js":function(e,t,r){"use strict";r.r(t);var i=function(){function e(){this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._totalBytes=0,this._lastSecondBytes=0,self.performance&&self.performance.now?this._now=self.performance.now.bind(self.performance):this._now=Date.now}return e.prototype.reset=function(){this._firstCheckpoint=this._lastCheckpoint=0,this._totalBytes=this._intervalBytes=0,this._lastSecondBytes=0},e.prototype.addBytes=function(e){0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=e,this._totalBytes+=e):this._now()-this._lastCheckpoint<1e3?(this._intervalBytes+=e,this._totalBytes+=e):(this._lastSecondBytes=this._intervalBytes,this._intervalBytes=e,this._totalBytes+=e,this._lastCheckpoint=this._now())},Object.defineProperty(e.prototype,"currentKBps",{get:function(){this.addBytes(0);var e=(this._now()-this._lastCheckpoint)/1e3;return 0==e&&(e=1),this._intervalBytes/e/1024},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSecondKBps",{get:function(){return this.addBytes(0),0!==this._lastSecondBytes?this._lastSecondBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"averageKBps",{get:function(){var e=(this._now()-this._firstCheckpoint)/1e3;return this._totalBytes/e/1024},enumerable:!1,configurable:!0}),e}();t.default=i},"./src/io/websocket-loader.js":function(e,t,r){"use strict";r.r(t);var i,n=r("./src/io/loader.js"),s=r("./src/utils/exception.js"),o=(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=function(e){function t(){var t=e.call(this,"websocket-loader")||this;return t.TAG="WebSocketLoader",t._needStash=!0,t._ws=null,t._requestAbort=!1,t._receivedLength=0,t}return o(t,e),t.isSupported=function(){try{return void 0!==self.WebSocket}catch(e){return!1}},t.prototype.destroy=function(){this._ws&&this.abort(),e.prototype.destroy.call(this)},t.prototype.open=function(e){try{var t=this._ws=new self.WebSocket(e.url);t.binaryType="arraybuffer",t.onopen=this._onWebSocketOpen.bind(this),t.onclose=this._onWebSocketClose.bind(this),t.onmessage=this._onWebSocketMessage.bind(this),t.onerror=this._onWebSocketError.bind(this),this._status=n.LoaderStatus.kConnecting}catch(e){this._status=n.LoaderStatus.kError;var r={code:e.code,msg:e.message};if(!this._onError)throw new s.RuntimeException(r.msg);this._onError(n.LoaderErrors.EXCEPTION,r)}},t.prototype.abort=function(){var e=this._ws;!e||0!==e.readyState&&1!==e.readyState||(this._requestAbort=!0,e.close()),this._ws=null,this._status=n.LoaderStatus.kComplete},t.prototype._onWebSocketOpen=function(e){this._status=n.LoaderStatus.kBuffering},t.prototype._onWebSocketClose=function(e){!0!==this._requestAbort?(this._status=n.LoaderStatus.kComplete,this._onComplete&&this._onComplete(0,this._receivedLength-1)):this._requestAbort=!1},t.prototype._onWebSocketMessage=function(e){var t=this;if(e.data instanceof ArrayBuffer)this._dispatchArrayBuffer(e.data);else if(e.data instanceof Blob){var r=new FileReader;r.onload=function(){t._dispatchArrayBuffer(r.result)},r.readAsArrayBuffer(e.data)}else{this._status=n.LoaderStatus.kError;var i={code:-1,msg:"Unsupported WebSocket message type: "+e.data.constructor.name};if(!this._onError)throw new s.RuntimeException(i.msg);this._onError(n.LoaderErrors.EXCEPTION,i)}},t.prototype._dispatchArrayBuffer=function(e){var t=e,r=this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,r,this._receivedLength)},t.prototype._onWebSocketError=function(e){this._status=n.LoaderStatus.kError;var t={code:e.code,msg:e.message};if(!this._onError)throw new s.RuntimeException(t.msg);this._onError(n.LoaderErrors.EXCEPTION,t)},t}(n.BaseLoader);t.default=a},"./src/io/xhr-moz-chunked-loader.js":function(e,t,r){"use strict";r.r(t);var i,n=r("./src/utils/logger.js"),s=r("./src/io/loader.js"),o=r("./src/utils/exception.js"),a=(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),l=function(e){function t(t,r){var i=e.call(this,"xhr-moz-chunked-loader")||this;return i.TAG="MozChunkedLoader",i._seekHandler=t,i._config=r,i._needStash=!0,i._xhr=null,i._requestAbort=!1,i._contentLength=null,i._receivedLength=0,i}return a(t,e),t.isSupported=function(){try{var e=new XMLHttpRequest;return e.open("GET","https://example.com",!0),e.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===e.responseType}catch(e){return n.default.w("MozChunkedLoader",e.message),!1}},t.prototype.destroy=function(){this.isWorking()&&this.abort(),this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onloadend=null,this._xhr.onerror=null,this._xhr=null),e.prototype.destroy.call(this)},t.prototype.open=function(e,t){this._dataSource=e,this._range=t;var r=e.url;this._config.reuseRedirectedURL&&null!=e.redirectedURL&&(r=e.redirectedURL);var i=this._seekHandler.getConfig(r,t);this._requestURL=i.url;var n=this._xhr=new XMLHttpRequest;if(n.open("GET",i.url,!0),n.responseType="moz-chunked-arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onloadend=this._onLoadEnd.bind(this),n.onerror=this._onXhrError.bind(this),e.withCredentials&&(n.withCredentials=!0),"object"==typeof i.headers){var o=i.headers;for(var a in o)o.hasOwnProperty(a)&&n.setRequestHeader(a,o[a])}if("object"==typeof this._config.headers)for(var a in o=this._config.headers)o.hasOwnProperty(a)&&n.setRequestHeader(a,o[a]);this._status=s.LoaderStatus.kConnecting,n.send()},t.prototype.abort=function(){this._requestAbort=!0,this._xhr&&this._xhr.abort(),this._status=s.LoaderStatus.kComplete},t.prototype._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(null!=t.responseURL&&t.responseURL!==this._requestURL&&this._onURLRedirect){var r=this._seekHandler.removeURLParameters(t.responseURL);this._onURLRedirect(r)}if(0!==t.status&&(t.status<200||t.status>299)){if(this._status=s.LoaderStatus.kError,!this._onError)throw new o.RuntimeException("MozChunkedLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(s.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}else this._status=s.LoaderStatus.kBuffering}},t.prototype._onProgress=function(e){if(this._status!==s.LoaderStatus.kError){null===this._contentLength&&null!==e.total&&0!==e.total&&(this._contentLength=e.total,this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength));var t=e.target.response,r=this._range.from+this._receivedLength;this._receivedLength+=t.byteLength,this._onDataArrival&&this._onDataArrival(t,r,this._receivedLength)}},t.prototype._onLoadEnd=function(e){!0!==this._requestAbort?this._status!==s.LoaderStatus.kError&&(this._status=s.LoaderStatus.kComplete,this._onComplete&&this._onComplete(this._range.from,this._range.from+this._receivedLength-1)):this._requestAbort=!1},t.prototype._onXhrError=function(e){this._status=s.LoaderStatus.kError;var t=0,r=null;if(this._contentLength&&e.loaded=this._contentLength&&(r=this._range.from+this._contentLength-1),this._currentRequestRange={from:t,to:r},this._internalOpen(this._dataSource,this._currentRequestRange)},t.prototype._internalOpen=function(e,t){this._lastTimeLoaded=0;var r=e.url;this._config.reuseRedirectedURL&&(null!=this._currentRedirectedURL?r=this._currentRedirectedURL:null!=e.redirectedURL&&(r=e.redirectedURL));var i=this._seekHandler.getConfig(r,t);this._currentRequestURL=i.url;var n=this._xhr=new XMLHttpRequest;if(n.open("GET",i.url,!0),n.responseType="arraybuffer",n.onreadystatechange=this._onReadyStateChange.bind(this),n.onprogress=this._onProgress.bind(this),n.onload=this._onLoad.bind(this),n.onerror=this._onXhrError.bind(this),e.withCredentials&&(n.withCredentials=!0),"object"==typeof i.headers){var s=i.headers;for(var o in s)s.hasOwnProperty(o)&&n.setRequestHeader(o,s[o])}if("object"==typeof this._config.headers)for(var o in s=this._config.headers)s.hasOwnProperty(o)&&n.setRequestHeader(o,s[o]);n.send()},t.prototype.abort=function(){this._requestAbort=!0,this._internalAbort(),this._status=o.LoaderStatus.kComplete},t.prototype._internalAbort=function(){this._xhr&&(this._xhr.onreadystatechange=null,this._xhr.onprogress=null,this._xhr.onload=null,this._xhr.onerror=null,this._xhr.abort(),this._xhr=null)},t.prototype._onReadyStateChange=function(e){var t=e.target;if(2===t.readyState){if(null!=t.responseURL){var r=this._seekHandler.removeURLParameters(t.responseURL);t.responseURL!==this._currentRequestURL&&r!==this._currentRedirectedURL&&(this._currentRedirectedURL=r,this._onURLRedirect&&this._onURLRedirect(r))}if(t.status>=200&&t.status<=299){if(this._waitForTotalLength)return;this._status=o.LoaderStatus.kBuffering}else{if(this._status=o.LoaderStatus.kError,!this._onError)throw new a.RuntimeException("RangeLoader: Http code invalid, "+t.status+" "+t.statusText);this._onError(o.LoaderErrors.HTTP_STATUS_CODE_INVALID,{code:t.status,msg:t.statusText})}}},t.prototype._onProgress=function(e){if(this._status!==o.LoaderStatus.kError){if(null===this._contentLength){var t=!1;if(this._waitForTotalLength){this._waitForTotalLength=!1,this._totalLengthReceived=!0,t=!0;var r=e.total;this._internalAbort(),null!=r&0!==r&&(this._totalLength=r)}if(-1===this._range.to?this._contentLength=this._totalLength-this._range.from:this._contentLength=this._range.to-this._range.from+1,t)return void this._openSubRange();this._onContentLengthKnown&&this._onContentLengthKnown(this._contentLength)}var i=e.loaded-this._lastTimeLoaded;this._lastTimeLoaded=e.loaded,this._speedSampler.addBytes(i)}},t.prototype._normalizeSpeed=function(e){var t=this._chunkSizeKBList,r=t.length-1,i=0,n=0,s=r;if(e=t[i]&&e=3&&(t=this._speedSampler.currentKBps)),0!==t){var r=this._normalizeSpeed(t);this._currentSpeedNormalized!==r&&(this._currentSpeedNormalized=r,this._currentChunkSizeKB=r)}var i=e.target.response,n=this._range.from+this._receivedLength;this._receivedLength+=i.byteLength;var s=!1;null!=this._contentLength&&this._receivedLength0&&this._receivedLength0&&(this._requestSetTime=!0,this._mediaElement.currentTime=0),this._transmuxer=new l.default(this._mediaDataSource,this._config),this._transmuxer.on(u.default.INIT_SEGMENT,(function(t,r){e._msectl.appendInitSegment(r)})),this._transmuxer.on(u.default.MEDIA_SEGMENT,(function(t,r){if(e._msectl.appendMediaSegment(r),e._config.lazyLoad&&!e._config.isLive){var i=e._mediaElement.currentTime;r.info.endDts>=1e3*(i+e._config.lazyLoadMaxDuration)&&null==e._progressChecker&&(s.default.v(e.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),e._suspendTransmuxer())}})),this._transmuxer.on(u.default.LOADING_COMPLETE,(function(){e._msectl.endOfStream(),e._emitter.emit(a.default.LOADING_COMPLETE)})),this._transmuxer.on(u.default.RECOVERED_EARLY_EOF,(function(){e._emitter.emit(a.default.RECOVERED_EARLY_EOF)})),this._transmuxer.on(u.default.IO_ERROR,(function(t,r){e._emitter.emit(a.default.ERROR,h.ErrorTypes.NETWORK_ERROR,t,r)})),this._transmuxer.on(u.default.DEMUX_ERROR,(function(t,r){e._emitter.emit(a.default.ERROR,h.ErrorTypes.MEDIA_ERROR,t,{code:-1,msg:r})})),this._transmuxer.on(u.default.MEDIA_INFO,(function(t){e._mediaInfo=t,e._emitter.emit(a.default.MEDIA_INFO,Object.assign({},t))})),this._transmuxer.on(u.default.METADATA_ARRIVED,(function(t){e._emitter.emit(a.default.METADATA_ARRIVED,t)})),this._transmuxer.on(u.default.SCRIPTDATA_ARRIVED,(function(t){e._emitter.emit(a.default.SCRIPTDATA_ARRIVED,t)})),this._transmuxer.on(u.default.STATISTICS_INFO,(function(t){e._statisticsInfo=e._fillStatisticsInfo(t),e._emitter.emit(a.default.STATISTICS_INFO,Object.assign({},e._statisticsInfo))})),this._transmuxer.on(u.default.RECOMMEND_SEEKPOINT,(function(t){e._mediaElement&&!e._config.accurateSeek&&(e._requestSetTime=!0,e._mediaElement.currentTime=t/1e3)})),this._transmuxer.open()))},e.prototype.unload=function(){this._mediaElement&&this._mediaElement.pause(),this._msectl&&this._msectl.seek(0),this._transmuxer&&(this._transmuxer.close(),this._transmuxer.destroy(),this._transmuxer=null)},e.prototype.play=function(){return this._mediaElement.play()},e.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._internalSeek(e):this._pendingSeekTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"mediaInfo",{get:function(){return Object.assign({},this._mediaInfo)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"statisticsInfo",{get:function(){return null==this._statisticsInfo&&(this._statisticsInfo={}),this._statisticsInfo=this._fillStatisticsInfo(this._statisticsInfo),Object.assign({},this._statisticsInfo)},enumerable:!1,configurable:!0}),e.prototype._fillStatisticsInfo=function(e){if(e.playerType=this._type,!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,r=0,i=0;if(this._mediaElement.getVideoPlaybackQuality){var n=this._mediaElement.getVideoPlaybackQuality();r=n.totalVideoFrames,i=n.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(r=this._mediaElement.webkitDecodedFrameCount,i=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=r,e.droppedFrames=i),e},e.prototype._onmseUpdateEnd=function(){if(this._config.lazyLoad&&!this._config.isLive){for(var e=this._mediaElement.buffered,t=this._mediaElement.currentTime,r=0,i=0;i=t+this._config.lazyLoadMaxDuration&&null==this._progressChecker&&(s.default.v(this.TAG,"Maximum buffering duration exceeded, suspend transmuxing task"),this._suspendTransmuxer())}},e.prototype._onmseBufferFull=function(){s.default.v(this.TAG,"MSE SourceBuffer is full, suspend transmuxing task"),null==this._progressChecker&&this._suspendTransmuxer()},e.prototype._suspendTransmuxer=function(){this._transmuxer&&(this._transmuxer.pause(),null==this._progressChecker&&(this._progressChecker=window.setInterval(this._checkProgressAndResume.bind(this),1e3)))},e.prototype._checkProgressAndResume=function(){for(var e=this._mediaElement.currentTime,t=this._mediaElement.buffered,r=!1,i=0;i=n&&e=o-this._config.lazyLoadRecoverDuration&&(r=!0);break}}r&&(window.clearInterval(this._progressChecker),this._progressChecker=null,r&&(s.default.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))},e.prototype._isTimepointBuffered=function(e){for(var t=this._mediaElement.buffered,r=0;r=i&&e0){var n=this._mediaElement.buffered.start(0);(n<1&&e0&&t.currentTime0){var i=r.start(0);if(i<1&&t0&&(this._mediaElement.currentTime=0),this._mediaElement.preload="auto",this._mediaElement.load(),this._statisticsReporter=window.setInterval(this._reportStatisticsInfo.bind(this),this._config.statisticsInfoReportInterval)},e.prototype.unload=function(){this._mediaElement&&(this._mediaElement.src="",this._mediaElement.removeAttribute("src")),null!=this._statisticsReporter&&(window.clearInterval(this._statisticsReporter),this._statisticsReporter=null)},e.prototype.play=function(){return this._mediaElement.play()},e.prototype.pause=function(){this._mediaElement.pause()},Object.defineProperty(e.prototype,"type",{get:function(){return this._type},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"buffered",{get:function(){return this._mediaElement.buffered},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"duration",{get:function(){return this._mediaElement.duration},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"volume",{get:function(){return this._mediaElement.volume},set:function(e){this._mediaElement.volume=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"muted",{get:function(){return this._mediaElement.muted},set:function(e){this._mediaElement.muted=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentTime",{get:function(){return this._mediaElement?this._mediaElement.currentTime:0},set:function(e){this._mediaElement?this._mediaElement.currentTime=e:this._pendingSeekTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"mediaInfo",{get:function(){var e={mimeType:(this._mediaElement instanceof HTMLAudioElement?"audio/":"video/")+this._mediaDataSource.type};return this._mediaElement&&(e.duration=Math.floor(1e3*this._mediaElement.duration),this._mediaElement instanceof HTMLVideoElement&&(e.width=this._mediaElement.videoWidth,e.height=this._mediaElement.videoHeight)),e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"statisticsInfo",{get:function(){var e={playerType:this._type,url:this._mediaDataSource.url};if(!(this._mediaElement instanceof HTMLVideoElement))return e;var t=!0,r=0,i=0;if(this._mediaElement.getVideoPlaybackQuality){var n=this._mediaElement.getVideoPlaybackQuality();r=n.totalVideoFrames,i=n.droppedVideoFrames}else null!=this._mediaElement.webkitDecodedFrameCount?(r=this._mediaElement.webkitDecodedFrameCount,i=this._mediaElement.webkitDroppedFrameCount):t=!1;return t&&(e.decodedFrames=r,e.droppedFrames=i),e},enumerable:!1,configurable:!0}),e.prototype._onvLoadedMetadata=function(e){null!=this._pendingSeekTime&&(this._mediaElement.currentTime=this._pendingSeekTime,this._pendingSeekTime=null),this._emitter.emit(s.default.MEDIA_INFO,this.mediaInfo)},e.prototype._reportStatisticsInfo=function(){this._emitter.emit(s.default.STATISTICS_INFO,this.statisticsInfo)},e}();t.default=l},"./src/player/player-errors.js":function(e,t,r){"use strict";r.r(t),r.d(t,{ErrorTypes:function(){return s},ErrorDetails:function(){return o}});var i=r("./src/io/loader.js"),n=r("./src/demux/demux-errors.js"),s={NETWORK_ERROR:"NetworkError",MEDIA_ERROR:"MediaError",OTHER_ERROR:"OtherError"},o={NETWORK_EXCEPTION:i.LoaderErrors.EXCEPTION,NETWORK_STATUS_CODE_INVALID:i.LoaderErrors.HTTP_STATUS_CODE_INVALID,NETWORK_TIMEOUT:i.LoaderErrors.CONNECTING_TIMEOUT,NETWORK_UNRECOVERABLE_EARLY_EOF:i.LoaderErrors.UNRECOVERABLE_EARLY_EOF,MEDIA_MSE_ERROR:"MediaMSEError",MEDIA_FORMAT_ERROR:n.default.FORMAT_ERROR,MEDIA_FORMAT_UNSUPPORTED:n.default.FORMAT_UNSUPPORTED,MEDIA_CODEC_UNSUPPORTED:n.default.CODEC_UNSUPPORTED}},"./src/player/player-events.js":function(e,t,r){"use strict";r.r(t),t.default={ERROR:"error",LOADING_COMPLETE:"loading_complete",RECOVERED_EARLY_EOF:"recovered_early_eof",MEDIA_INFO:"media_info",METADATA_ARRIVED:"metadata_arrived",SCRIPTDATA_ARRIVED:"scriptdata_arrived",STATISTICS_INFO:"statistics_info"}},"./src/remux/aac-silent.js":function(e,t,r){"use strict";r.r(t);var i=function(){function e(){}return e.getSilentFrame=function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},e}();t.default=i},"./src/remux/mp4-generator.js":function(e,t,r){"use strict";r.r(t);var i=function(){function e(){}return e.init=function(){for(var t in e.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[]},e.types)e.types.hasOwnProperty(t)&&(e.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);var r=e.constants={};r.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),r.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),r.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),r.STSC=r.STCO=r.STTS,r.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),r.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),r.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),r.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),r.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),r.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])},e.box=function(e){for(var t=8,r=null,i=Array.prototype.slice.call(arguments,1),n=i.length,s=0;s>>24&255,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,r.set(e,4);var o=8;for(s=0;s>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))},e.trak=function(t){return e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.tkhd=function(t){var r=t.id,i=t.duration,n=t.presentWidth,s=t.presentHeight;return e.box(e.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>>8&255,255&n,0,0,s>>>8&255,255&s,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t),e.hdlr(t),e.minf(t))},e.mdhd=function(t){var r=t.timescale,i=t.duration;return e.box(e.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]))},e.hdlr=function(t){var r;return r="audio"===t.type?e.constants.HDLR_AUDIO:e.constants.HDLR_VIDEO,e.box(e.types.hdlr,r)},e.minf=function(t){var r;return r="audio"===t.type?e.box(e.types.smhd,e.constants.SMHD):e.box(e.types.vmhd,e.constants.VMHD),e.box(e.types.minf,r,e.dinf(),e.stbl(t))},e.dinf=function(){return e.box(e.types.dinf,e.box(e.types.dref,e.constants.DREF))},e.stbl=function(t){return e.box(e.types.stbl,e.stsd(t),e.box(e.types.stts,e.constants.STTS),e.box(e.types.stsc,e.constants.STSC),e.box(e.types.stsz,e.constants.STSZ),e.box(e.types.stco,e.constants.STCO))},e.stsd=function(t){return"audio"===t.type?"mp3"===t.codec?e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp3(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.mp4a(t)):e.box(e.types.stsd,e.constants.STSD_PREFIX,e.avc1(t))},e.mp3=function(t){var r=t.channelCount,i=t.audioSampleRate,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,r,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return e.box(e.types[".mp3"],n)},e.mp4a=function(t){var r=t.channelCount,i=t.audioSampleRate,n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,r,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return e.box(e.types.mp4a,n,e.esds(t))},e.esds=function(t){var r=t.config||[],i=r.length,n=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(r).concat([6,1,2]));return e.box(e.types.esds,n)},e.avc1=function(t){var r=t.avcc,i=t.codecWidth,n=t.codecHeight,s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,n>>>8&255,255&n,0,72,0,0,0,72,0,0,0,0,0,0,0,1,10,120,113,113,47,102,108,118,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return e.box(e.types.avc1,s,e.box(e.types.avcC,r))},e.mvex=function(t){return e.box(e.types.mvex,e.trex(t))},e.trex=function(t){var r=t.id,i=new Uint8Array([0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return e.box(e.types.trex,i)},e.moof=function(t,r){return e.box(e.types.moof,e.mfhd(t.sequenceNumber),e.traf(t,r))},e.mfhd=function(t){var r=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]);return e.box(e.types.mfhd,r)},e.traf=function(t,r){var i=t.id,n=e.box(e.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),s=e.box(e.types.tfdt,new Uint8Array([0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r])),o=e.sdtp(t),a=e.trun(t,o.byteLength+16+16+8+16+8+8);return e.box(e.types.traf,n,s,a,o)},e.sdtp=function(t){for(var r=t.samples||[],i=r.length,n=new Uint8Array(4+i),s=0;s>>24&255,n>>>16&255,n>>>8&255,255&n,r>>>24&255,r>>>16&255,r>>>8&255,255&r],0);for(var a=0;a>>24&255,l>>>16&255,l>>>8&255,255&l,u>>>24&255,u>>>16&255,u>>>8&255,255&u,d.isLeading<<2|d.dependsOn,d.isDependedOn<<6|d.hasRedundancy<<4|d.isNonSync,0,0,c>>>24&255,c>>>16&255,c>>>8&255,255&c],12+16*a)}return e.box(e.types.trun,o)},e.mdat=function(t){return e.box(e.types.mdat,t)},e}();i.init(),t.default=i},"./src/remux/mp4-remuxer.js":function(e,t,r){"use strict";r.r(t);var i=r("./src/utils/logger.js"),n=r("./src/remux/mp4-generator.js"),s=r("./src/remux/aac-silent.js"),o=r("./src/utils/browser.js"),a=r("./src/core/media-segment-info.js"),l=r("./src/utils/exception.js"),u=function(){function e(e){this.TAG="MP4Remuxer",this._config=e,this._isLive=!0===e.isLive,this._dtsBase=-1,this._dtsBaseInited=!1,this._audioDtsBase=1/0,this._videoDtsBase=1/0,this._audioNextDts=void 0,this._videoNextDts=void 0,this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList=new a.MediaSegmentInfoList("audio"),this._videoSegmentInfoList=new a.MediaSegmentInfoList("video"),this._onInitSegment=null,this._onMediaSegment=null,this._forceFirstIDR=!(!o.default.chrome||!(o.default.version.major<50||50===o.default.version.major&&o.default.version.build<2661)),this._fillSilentAfterSeek=o.default.msedge||o.default.msie,this._mp3UseMpegAudio=!o.default.firefox,this._fillAudioTimestampGap=this._config.fixAudioTimestampGap}return e.prototype.destroy=function(){this._dtsBase=-1,this._dtsBaseInited=!1,this._audioMeta=null,this._videoMeta=null,this._audioSegmentInfoList.clear(),this._audioSegmentInfoList=null,this._videoSegmentInfoList.clear(),this._videoSegmentInfoList=null,this._onInitSegment=null,this._onMediaSegment=null},e.prototype.bindDataSource=function(e){return e.onDataAvailable=this.remux.bind(this),e.onTrackMetadata=this._onTrackMetadataReceived.bind(this),this},Object.defineProperty(e.prototype,"onInitSegment",{get:function(){return this._onInitSegment},set:function(e){this._onInitSegment=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"onMediaSegment",{get:function(){return this._onMediaSegment},set:function(e){this._onMediaSegment=e},enumerable:!1,configurable:!0}),e.prototype.insertDiscontinuity=function(){this._audioNextDts=this._videoNextDts=void 0},e.prototype.seek=function(e){this._audioStashedLastSample=null,this._videoStashedLastSample=null,this._videoSegmentInfoList.clear(),this._audioSegmentInfoList.clear()},e.prototype.remux=function(e,t){if(!this._onMediaSegment)throw new l.IllegalStateException("MP4Remuxer: onMediaSegment callback must be specificed!");this._dtsBaseInited||this._calculateDtsBase(e,t),this._remuxVideo(t),this._remuxAudio(e)},e.prototype._onTrackMetadataReceived=function(e,t){var r=null,i="mp4",s=t.codec;if("audio"===e)this._audioMeta=t,"mp3"===t.codec&&this._mp3UseMpegAudio?(i="mpeg",s="",r=new Uint8Array):r=n.default.generateInitSegment(t);else{if("video"!==e)return;this._videoMeta=t,r=n.default.generateInitSegment(t)}if(!this._onInitSegment)throw new l.IllegalStateException("MP4Remuxer: onInitSegment callback must be specified!");this._onInitSegment(e,{type:e,data:r.buffer,codec:s,container:e+"/"+i,mediaDuration:t.duration})},e.prototype._calculateDtsBase=function(e,t){this._dtsBaseInited||(e.samples&&e.samples.length&&(this._audioDtsBase=e.samples[0].dts),t.samples&&t.samples.length&&(this._videoDtsBase=t.samples[0].dts),this._dtsBase=Math.min(this._audioDtsBase,this._videoDtsBase),this._dtsBaseInited=!0)},e.prototype.flushStashedSamples=function(){var e=this._videoStashedLastSample,t=this._audioStashedLastSample,r={type:"video",id:1,sequenceNumber:0,samples:[],length:0};null!=e&&(r.samples.push(e),r.length=e.length);var i={type:"audio",id:2,sequenceNumber:0,samples:[],length:0};null!=t&&(i.samples.push(t),i.length=t.length),this._videoStashedLastSample=null,this._audioStashedLastSample=null,this._remuxVideo(r,!0),this._remuxAudio(i,!0)},e.prototype._remuxAudio=function(e,t){if(null!=this._audioMeta){var r,l=e,u=l.samples,d=void 0,c=-1,h=this._audioMeta.refSampleDuration,f="mp3"===this._audioMeta.codec&&this._mp3UseMpegAudio,p=this._dtsBaseInited&&void 0===this._audioNextDts,m=!1;if(u&&0!==u.length&&(1!==u.length||t)){var g=0,v=null,y=0;f?(g=0,y=l.length):(g=8,y=8+l.length);var _=null;if(u.length>1&&(y-=(_=u.pop()).length),null!=this._audioStashedLastSample){var b=this._audioStashedLastSample;this._audioStashedLastSample=null,u.unshift(b),y+=b.length}null!=_&&(this._audioStashedLastSample=_);var w=u[0].dts-this._dtsBase;if(this._audioNextDts)d=w-this._audioNextDts;else if(this._audioSegmentInfoList.isEmpty())d=0,this._fillSilentAfterSeek&&!this._videoSegmentInfoList.isEmpty()&&"mp3"!==this._audioMeta.originalCodec&&(m=!0);else{var S=this._audioSegmentInfoList.getLastSampleBefore(w);if(null!=S){var x=w-(S.originalDts+S.duration);x<=3&&(x=0),d=w-(S.dts+S.duration+x)}else d=0}if(m){var E=w-d,A=this._videoSegmentInfoList.getLastSegmentBefore(w);if(null!=A&&A.beginDts=3*h&&this._fillAudioTimestampGap&&!o.default.safari){O=!0;var P,N=Math.floor(d/h);i.default.w(this.TAG,"Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: "+T+" ms, curRefDts: "+C+" ms, dtsCorrection: "+Math.round(d)+" ms, generate: "+N+" frames"),R=Math.floor(C),D=Math.floor(C+h)-R,null==(P=s.default.getSilentFrame(this._audioMeta.originalCodec,this._audioMeta.channelCount))&&(i.default.w(this.TAG,"Unable to generate silent frame for "+this._audioMeta.originalCodec+" with "+this._audioMeta.channelCount+" channels, repeat last frame"),P=j),M=[];for(var B=0;B=1?k[k.length-1].duration:Math.floor(h),this._audioNextDts=R+D;-1===c&&(c=R),k.push({dts:R,pts:R,cts:0,unit:b.unit,size:b.unit.byteLength,duration:D,originalDts:T,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),O&&k.push.apply(k,M)}}if(0===k.length)return l.samples=[],void(l.length=0);for(f?v=new Uint8Array(y):((v=new Uint8Array(y))[0]=y>>>24&255,v[1]=y>>>16&255,v[2]=y>>>8&255,v[3]=255&y,v.set(n.default.types.mdat,4)),I=0;I1&&(f-=(p=o.pop()).length),null!=this._videoStashedLastSample){var m=this._videoStashedLastSample;this._videoStashedLastSample=null,o.unshift(m),f+=m.length}null!=p&&(this._videoStashedLastSample=p);var g=o[0].dts-this._dtsBase;if(this._videoNextDts)l=g-this._videoNextDts;else if(this._videoSegmentInfoList.isEmpty())l=0;else{var v=this._videoSegmentInfoList.getLastSampleBefore(g);if(null!=v){var y=g-(v.originalDts+v.duration);y<=3&&(y=0),l=g-(v.dts+v.duration+y)}else l=0}for(var _=new a.MediaSegmentInfo,b=[],w=0;w=1?b[b.length-1].duration:Math.floor(this._videoMeta.refSampleDuration),x){var k=new a.SampleInfo(E,R,L,m.dts,!0);k.fileposition=m.fileposition,_.appendSyncPoint(k)}b.push({dts:E,pts:R,cts:A,units:m.units,size:m.length,isKeyframe:x,duration:L,originalDts:S,flags:{isLeading:0,dependsOn:x?2:1,isDependedOn:x?1:0,hasRedundancy:0,isNonSync:x?0:1}})}for((h=new Uint8Array(f))[0]=f>>>24&255,h[1]=f>>>16&255,h[2]=f>>>8&255,h[3]=255&f,h.set(n.default.types.mdat,4),w=0;w=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(firefox)[ \/]([\w.]+)/.exec(e)||[],r=/(ipad)/.exec(e)||/(ipod)/.exec(e)||/(windows phone)/.exec(e)||/(iphone)/.exec(e)||/(kindle)/.exec(e)||/(android)/.exec(e)||/(windows)/.exec(e)||/(mac)/.exec(e)||/(linux)/.exec(e)||/(cros)/.exec(e)||[],n={browser:t[5]||t[3]||t[1]||"",version:t[2]||t[4]||"0",majorVersion:t[4]||t[2]||"0",platform:r[0]||""},s={};if(n.browser){s[n.browser]=!0;var o=n.majorVersion.split(".");s.version={major:parseInt(n.majorVersion,10),string:n.version},o.length>1&&(s.version.minor=parseInt(o[1],10)),o.length>2&&(s.version.build=parseInt(o[2],10))}if(n.platform&&(s[n.platform]=!0),(s.chrome||s.opr||s.safari)&&(s.webkit=!0),s.rv||s.iemobile){s.rv&&delete s.rv;n.browser="msie",s.msie=!0}if(s.edge){delete s.edge;n.browser="msedge",s.msedge=!0}if(s.opr){n.browser="opera",s.opera=!0}if(s.safari&&s.android){n.browser="android",s.android=!0}for(var a in s.name=n.browser,s.platform=n.platform,i)i.hasOwnProperty(a)&&delete i[a];Object.assign(i,s)}(),t.default=i},"./src/utils/exception.js":function(e,t,r){"use strict";r.r(t),r.d(t,{RuntimeException:function(){return s},IllegalStateException:function(){return o},InvalidArgumentException:function(){return a},NotImplementedException:function(){return l}});var i,n=(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=function(){function e(e){this._message=e}return Object.defineProperty(e.prototype,"name",{get:function(){return"RuntimeException"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"message",{get:function(){return this._message},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return this.name+": "+this.message},e}(),o=function(e){function t(t){return e.call(this,t)||this}return n(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"IllegalStateException"},enumerable:!1,configurable:!0}),t}(s),a=function(e){function t(t){return e.call(this,t)||this}return n(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"InvalidArgumentException"},enumerable:!1,configurable:!0}),t}(s),l=function(e){function t(t){return e.call(this,t)||this}return n(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return"NotImplementedException"},enumerable:!1,configurable:!0}),t}(s)},"./src/utils/logger.js":function(e,t,r){"use strict";r.r(t);var i=r("./node_modules/events/events.js"),n=r.n(i),s=function(){function e(){}return e.e=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","error",i),e.ENABLE_ERROR&&(console.error?console.error(i):console.warn?console.warn(i):console.log(i))},e.i=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","info",i),e.ENABLE_INFO&&(console.info?console.info(i):console.log(i))},e.w=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","warn",i),e.ENABLE_WARN&&(console.warn?console.warn(i):console.log(i))},e.d=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","debug",i),e.ENABLE_DEBUG&&(console.debug?console.debug(i):console.log(i))},e.v=function(t,r){t&&!e.FORCE_GLOBAL_TAG||(t=e.GLOBAL_TAG);var i="["+t+"] > "+r;e.ENABLE_CALLBACK&&e.emitter.emit("log","verbose",i),e.ENABLE_VERBOSE&&console.log(i)},e}();s.GLOBAL_TAG="flv.js",s.FORCE_GLOBAL_TAG=!1,s.ENABLE_ERROR=!0,s.ENABLE_INFO=!0,s.ENABLE_WARN=!0,s.ENABLE_DEBUG=!0,s.ENABLE_VERBOSE=!0,s.ENABLE_CALLBACK=!1,s.emitter=new(n()),t.default=s},"./src/utils/logging-control.js":function(e,t,r){"use strict";r.r(t);var i=r("./node_modules/events/events.js"),n=r.n(i),s=r("./src/utils/logger.js"),o=function(){function e(){}return Object.defineProperty(e,"forceGlobalTag",{get:function(){return s.default.FORCE_GLOBAL_TAG},set:function(t){s.default.FORCE_GLOBAL_TAG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"globalTag",{get:function(){return s.default.GLOBAL_TAG},set:function(t){s.default.GLOBAL_TAG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableAll",{get:function(){return s.default.ENABLE_VERBOSE&&s.default.ENABLE_DEBUG&&s.default.ENABLE_INFO&&s.default.ENABLE_WARN&&s.default.ENABLE_ERROR},set:function(t){s.default.ENABLE_VERBOSE=t,s.default.ENABLE_DEBUG=t,s.default.ENABLE_INFO=t,s.default.ENABLE_WARN=t,s.default.ENABLE_ERROR=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableDebug",{get:function(){return s.default.ENABLE_DEBUG},set:function(t){s.default.ENABLE_DEBUG=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableVerbose",{get:function(){return s.default.ENABLE_VERBOSE},set:function(t){s.default.ENABLE_VERBOSE=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableInfo",{get:function(){return s.default.ENABLE_INFO},set:function(t){s.default.ENABLE_INFO=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableWarn",{get:function(){return s.default.ENABLE_WARN},set:function(t){s.default.ENABLE_WARN=t,e._notifyChange()},enumerable:!1,configurable:!0}),Object.defineProperty(e,"enableError",{get:function(){return s.default.ENABLE_ERROR},set:function(t){s.default.ENABLE_ERROR=t,e._notifyChange()},enumerable:!1,configurable:!0}),e.getConfig=function(){return{globalTag:s.default.GLOBAL_TAG,forceGlobalTag:s.default.FORCE_GLOBAL_TAG,enableVerbose:s.default.ENABLE_VERBOSE,enableDebug:s.default.ENABLE_DEBUG,enableInfo:s.default.ENABLE_INFO,enableWarn:s.default.ENABLE_WARN,enableError:s.default.ENABLE_ERROR,enableCallback:s.default.ENABLE_CALLBACK}},e.applyConfig=function(e){s.default.GLOBAL_TAG=e.globalTag,s.default.FORCE_GLOBAL_TAG=e.forceGlobalTag,s.default.ENABLE_VERBOSE=e.enableVerbose,s.default.ENABLE_DEBUG=e.enableDebug,s.default.ENABLE_INFO=e.enableInfo,s.default.ENABLE_WARN=e.enableWarn,s.default.ENABLE_ERROR=e.enableError,s.default.ENABLE_CALLBACK=e.enableCallback},e._notifyChange=function(){var t=e.emitter;if(t.listenerCount("change")>0){var r=e.getConfig();t.emit("change",r)}},e.registerListener=function(t){e.emitter.addListener("change",t)},e.removeListener=function(t){e.emitter.removeListener("change",t)},e.addLogListener=function(t){s.default.emitter.addListener("log",t),s.default.emitter.listenerCount("log")>0&&(s.default.ENABLE_CALLBACK=!0,e._notifyChange())},e.removeLogListener=function(t){s.default.emitter.removeListener("log",t),0===s.default.emitter.listenerCount("log")&&(s.default.ENABLE_CALLBACK=!1,e._notifyChange())},e}();o.emitter=new(n()),t.default=o},"./src/utils/polyfill.js":function(e,t,r){"use strict";r.r(t);var i=function(){function e(){}return e.install=function(){Object.setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Object.assign=Object.assign||function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),r=1;r=128){t.push(String.fromCharCode(65535&o)),n+=2;continue}}else if(r[n]<240){if(i(r,n,2)&&(o=(15&r[n])<<12|(63&r[n+1])<<6|63&r[n+2])>=2048&&55296!=(63488&o)){t.push(String.fromCharCode(65535&o)),n+=3;continue}}else if(r[n]<248){var o;if(i(r,n,3)&&(o=(7&r[n])<<18|(63&r[n+1])<<12|(63&r[n+2])<<6|63&r[n+3])>65536&&o<1114112){o-=65536,t.push(String.fromCharCode(o>>>10|55296)),t.push(String.fromCharCode(1023&o|56320)),n+=4;continue}}t.push(String.fromCharCode(65533)),++n}return t.join("")}}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var s=t[i]={exports:{}};return e[i].call(s.exports,s,s.exports,r),s.exports}return r.m=e,r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r("./src/index.js")}()},e.exports=t()}},t={};function r(i){var n=t[i];if(void 0!==n)return n.exports;var s=t[i]={id:i,loaded:!1,exports:{}};return e[i](s,s.exports,r),s.loaded=!0,s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";var e=r(755),t=r.n(e),i=r(510),n=r.n(i),s=function(){for(var e=["oTransform","msTransform","mozTransform","webkitTransform","transform"],t=document.createElement("div").style,r=0;r0&&o!==1/0?Math.ceil(o):1*!!s.strokeStyle,n.font=s.font,e.width=e.width||Math.max(1,Math.ceil(n.measureText(e.text).width)+2*o),e.height=e.height||Math.ceil(function(e,t){if(u[e])return u[e];var r=12,i=e.match(/(\d+(?:\.\d+)?)(px|%|em|rem)(?:\s*\/\s*(\d+(?:\.\d+)?)(px|%|em|rem)?)?/);if(i){var n=1*i[1]||10,s=i[2],o=1*i[3]||1.2,a=i[4];"%"===s&&(n*=t.container/100),"em"===s&&(n*=t.container),"rem"===s&&(n*=t.root),"px"===a&&(r=o),"%"===a&&(r=n*o/100),"em"===a&&(r=n*o),"rem"===a&&(r=t.root*o),void 0===a&&(r=n*o)}return u[e]=r,r}(s.font,t))+2*o,i.width=e.width*l,i.height=e.height*l,s)n[a]=s[a];var d=0;switch(s.textBaseline){case"top":case"hanging":d=o;break;case"middle":d=e.height>>1;break;default:d=e.height-o}return s.strokeStyle&&n.strokeText(e.text,o,d),n.fillText(e.text,o,d),i}function c(e){return 1*window.getComputedStyle(e,null).getPropertyValue("font-size").match(/(.+)px/)[1]}var h={name:"canvas",init:function(e){var t=document.createElement("canvas");return t.context=t.getContext("2d"),t._fontSize={root:c(document.getElementsByTagName("html")[0]),container:c(e)},t},clear:function(e,t){e.context.clearRect(0,0,e.width,e.height);for(var r=0;rs)return!0;var o=t._.duration+e.time-r,a=t._.width+n.width,l=t.media?n.time:n._utc,u=a*(r-l)*i/t._.duration,d=t._.width-u;return o>t._.duration*d/(t._.width+n.width)}for(var s=this._.space[e.mode],o=0,a=0,l=1;l=d){a=l;break}n(u,e)&&(o=l)}var c=s[o].range,h={range:c+e.height,time:this.media?e.time:e._utc,width:e.width,height:e.height};return s.splice(o+1,a-o-1,h),"bottom"===e.mode?this._.height-e.height-c%this._.height:c%(this._.height-e.height)}var p=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return setTimeout(e,50/3)},m=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||clearTimeout;function g(e,t,r){for(var i=0,n=0,s=e.length;n=e[i=n+s>>1][t]?n=i:s=i;return e[n]&&r=0;u--)a=this._.runningList[u],t-(l=this.media?a.time:a._utc)>this._.duration&&(s(this._.stage,a),this._.runningList.splice(u,1));for(var d=[];this._.position=t));)t-l>this._.duration||(this.media&&(a._utc=e-(this.media.currentTime-a.time)),d.push(a)),++this._.position;for(i(this._.stage,d),u=0;u>1),n(this._.stage,a)}});return this._.requestID=p((function e(){a.call(o),o._.requestID=p(e)})),this}function w(){return!this._.visible||this._.paused||(this._.paused=!0,m(this._.requestID),this._.requestID=0),this}function S(){if(!this.media)return this;this.clear(),_(this._.space);var e=g(this.comments,"time",this.media.currentTime);return this._.position=Math.max(0,e-1),this}function x(e){e.play=b.bind(this),e.pause=w.bind(this),e.seeking=S.bind(this),this.media.addEventListener("play",e.play),this.media.addEventListener("pause",e.pause),this.media.addEventListener("playing",e.play),this.media.addEventListener("waiting",e.pause),this.media.addEventListener("seeking",e.seeking)}function E(e){this.media.removeEventListener("play",e.play),this.media.removeEventListener("pause",e.pause),this.media.removeEventListener("playing",e.play),this.media.removeEventListener("waiting",e.pause),this.media.removeEventListener("seeking",e.seeking),e.play=null,e.pause=null,e.seeking=null}function A(e){this._={},this.container=e.container||document.createElement("div"),this.media=e.media,this._.visible=!0,this.engine=(e.engine||"DOM").toLowerCase(),this._.engine="canvas"===this.engine?h:a,this._.requestID=0,this._.speed=Math.max(0,e.speed)||144,this._.duration=4,this.comments=e.comments||[],this.comments.sort((function(e,t){return e.time-t.time}));for(var t=0;t{let e=!0,r=new(t())({container:".artplayer-app",url:"/stream?_="+(new Date).getTime(),title:""+(new Date).getTime(),type:function(e,t){for(var r,i=window.location.search.match(/(?![?|&]).*?(?=(&|$))/g),n=new Array(2),s=0;(s",state:'',indicator:''},customType:{flv:function(e,t){if(n().isSupported()){const r=n().createPlayer({type:"flv",url:t});r.attachMediaElement(e),r.load()}else art.notice.show="不支持播放格式:flv"}}});r.on("play",((...t)=>{e&&r.switchUrl("/stream?_="+(new Date).getTime(),(new Date).getTime()),e=!1})),r.on("pause",((...t)=>{e=!0})),function e(){if(window.WebSocket){let r=new C({container:document.getElementsByClassName("art-danmuku")[0]});setInterval((function(){r.resize()}),1e3);var t=new WebSocket("ws://"+window.location.host+"/ws");t.onopen=function(){setInterval((function(){t.send("test")}),1e3)},t.onclose=function(){e()},t.onmessage=function(e){try{let t=JSON.parse(e.data);r.emit(t)}catch(t){console.log(t),console.log(e.data)}}}}()})()})()})(); //# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/demo/html/artPlayer/bundle.js.LICENSE.txt b/demo/html/artPlayer/bundle.js.LICENSE.txt new file mode 100644 index 0000000..1abf80f --- /dev/null +++ b/demo/html/artPlayer/bundle.js.LICENSE.txt @@ -0,0 +1,283 @@ +/*! + * @overview es6-promise - a tiny implementation of Promises/A+. + * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) + * @license Licensed under MIT license + * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE + * @version v4.2.8+1e68dce6 + */ + +/*! ../config.js */ + +/*! ../core/media-info.js */ + +/*! ../core/media-segment-info.js */ + +/*! ../core/mse-controller.js */ + +/*! ../core/mse-events.js */ + +/*! ../core/transmuxer.js */ + +/*! ../core/transmuxing-events.js */ + +/*! ../demux/demux-errors.js */ + +/*! ../demux/flv-demuxer.js */ + +/*! ../io/io-controller.js */ + +/*! ../io/loader.js */ + +/*! ../remux/mp4-remuxer.js */ + +/*! ../utils/browser.js */ + +/*! ../utils/exception.js */ + +/*! ../utils/logger.js */ + +/*! ../utils/logging-control.js */ + +/*! ../utils/polyfill.js */ + +/*! ../utils/utf8-conv.js */ + +/*! ./aac-silent.js */ + +/*! ./amf-parser.js */ + +/*! ./core/features.js */ + +/*! ./demux-errors.js */ + +/*! ./exp-golomb.js */ + +/*! ./fetch-stream-loader.js */ + +/*! ./flv.js */ + +/*! ./io/loader.js */ + +/*! ./loader.js */ + +/*! ./logger.js */ + +/*! ./media-info.js */ + +/*! ./media-segment-info.js */ + +/*! ./mp4-generator.js */ + +/*! ./mse-events.js */ + +/*! ./param-seek-handler.js */ + +/*! ./player-errors.js */ + +/*! ./player-events.js */ + +/*! ./player/flv-player.js */ + +/*! ./player/native-player.js */ + +/*! ./player/player-errors.js */ + +/*! ./player/player-events.js */ + +/*! ./range-seek-handler.js */ + +/*! ./speed-sampler.js */ + +/*! ./sps-parser.js */ + +/*! ./transmuxing-controller.js */ + +/*! ./transmuxing-events.js */ + +/*! ./transmuxing-worker */ + +/*! ./utils/exception.js */ + +/*! ./utils/logging-control.js */ + +/*! ./utils/polyfill.js */ + +/*! ./websocket-loader.js */ + +/*! ./xhr-moz-chunked-loader.js */ + +/*! ./xhr-range-loader.js */ + +/*! es6-promise */ + +/*! events */ + +/*! webworkify-webpack */ + +/*!********************!*\ + !*** ./src/flv.js ***! + \********************/ + +/*!**********************!*\ + !*** ./src/index.js ***! + \**********************/ + +/*!***********************!*\ + !*** ./src/config.js ***! + \***********************/ + +/*!**************************!*\ + !*** ./src/io/loader.js ***! + \**************************/ + +/*!*****************************!*\ + !*** ./src/utils/logger.js ***! + \*****************************/ + +/*!******************************!*\ + !*** ./src/core/features.js ***! + \******************************/ + +/*!******************************!*\ + !*** ./src/utils/browser.js ***! + \******************************/ + +/*!*******************************!*\ + !*** ./src/utils/polyfill.js ***! + \*******************************/ + +/*!********************************!*\ + !*** ./src/core/media-info.js ***! + \********************************/ + +/*!********************************!*\ + !*** ./src/core/mse-events.js ***! + \********************************/ + +/*!********************************!*\ + !*** ./src/core/transmuxer.js ***! + \********************************/ + +/*!********************************!*\ + !*** ./src/utils/exception.js ***! + \********************************/ + +/*!********************************!*\ + !*** ./src/utils/utf8-conv.js ***! + \********************************/ + +/*!*********************************!*\ + !*** ./src/demux/amf-parser.js ***! + \*********************************/ + +/*!*********************************!*\ + !*** ./src/demux/exp-golomb.js ***! + \*********************************/ + +/*!*********************************!*\ + !*** ./src/demux/sps-parser.js ***! + \*********************************/ + +/*!*********************************!*\ + !*** ./src/io/io-controller.js ***! + \*********************************/ + +/*!*********************************!*\ + !*** ./src/io/speed-sampler.js ***! + \*********************************/ + +/*!*********************************!*\ + !*** ./src/remux/aac-silent.js ***! + \*********************************/ + +/*!**********************************!*\ + !*** ./src/demux/flv-demuxer.js ***! + \**********************************/ + +/*!**********************************!*\ + !*** ./src/player/flv-player.js ***! + \**********************************/ + +/*!**********************************!*\ + !*** ./src/remux/mp4-remuxer.js ***! + \**********************************/ + +/*!***********************************!*\ + !*** ./src/demux/demux-errors.js ***! + \***********************************/ + +/*!************************************!*\ + !*** ./src/core/mse-controller.js ***! + \************************************/ + +/*!************************************!*\ + !*** ./src/io/websocket-loader.js ***! + \************************************/ + +/*!************************************!*\ + !*** ./src/io/xhr-range-loader.js ***! + \************************************/ + +/*!************************************!*\ + !*** ./src/remux/mp4-generator.js ***! + \************************************/ + +/*!*************************************!*\ + !*** ./src/player/native-player.js ***! + \*************************************/ + +/*!*************************************!*\ + !*** ./src/player/player-errors.js ***! + \*************************************/ + +/*!*************************************!*\ + !*** ./src/player/player-events.js ***! + \*************************************/ + +/*!**************************************!*\ + !*** ./src/io/param-seek-handler.js ***! + \**************************************/ + +/*!**************************************!*\ + !*** ./src/io/range-seek-handler.js ***! + \**************************************/ + +/*!**************************************!*\ + !*** ./src/utils/logging-control.js ***! + \**************************************/ + +/*!***************************************!*\ + !*** ./node_modules/events/events.js ***! + \***************************************/ + +/*!***************************************!*\ + !*** ./src/io/fetch-stream-loader.js ***! + \***************************************/ + +/*!****************************************!*\ + !*** ./src/core/media-segment-info.js ***! + \****************************************/ + +/*!****************************************!*\ + !*** ./src/core/transmuxing-events.js ***! + \****************************************/ + +/*!****************************************!*\ + !*** ./src/core/transmuxing-worker.js ***! + \****************************************/ + +/*!******************************************!*\ + !*** ./src/io/xhr-moz-chunked-loader.js ***! + \******************************************/ + +/*!********************************************!*\ + !*** ./src/core/transmuxing-controller.js ***! + \********************************************/ + +/*!**************************************************!*\ + !*** ./node_modules/webworkify-webpack/index.js ***! + \**************************************************/ + +/*!******************************************************!*\ + !*** ./node_modules/es6-promise/dist/es6-promise.js ***! + \******************************************************/ diff --git a/demo/html/artPlayer/bundle.js.map b/demo/html/artPlayer/bundle.js.map new file mode 100644 index 0000000..7f19c99 --- /dev/null +++ b/demo/html/artPlayer/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack:///./node_modules/artplayer/dist/artplayer.js","webpack:///./node_modules/flv.js/dist/flv.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/node module decorator","webpack:///./node_modules/danmaku/dist/esm/danmaku.js","webpack:///./app.js"],"sourcesContent":["/*!\n * artplayer.js v4.3.23\n * Github: https://github.com/zhw2590582/ArtPlayer\n * (c) 2017-2022 Harvey Zack\n * Released under the MIT License.\n */\n!function(e,t,r,o,i){var n=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:{},a=\"function\"==typeof n.parcelRequire4dc0&&n.parcelRequire4dc0,s=a.cache||{},l=\"undefined\"!=typeof module&&\"function\"==typeof module.require&&module.require.bind(module);function c(t,r){if(!s[t]){if(!e[t]){var o=\"function\"==typeof n.parcelRequire4dc0&&n.parcelRequire4dc0;if(!r&&o)return o(t,!0);if(a)return a(t,!0);if(l&&\"string\"==typeof t)return l(t);var i=new Error(\"Cannot find module '\"+t+\"'\");throw i.code=\"MODULE_NOT_FOUND\",i}u.resolve=function(r){var o=e[t][1][r];return null!=o?o:r},u.cache={};var p=s[t]=new c.Module(t);e[t][0].call(p.exports,u,p,p.exports,this)}return s[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:c(t)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=e,c.cache=s,c.parent=a,c.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(c,\"root\",{get:function(){return n.parcelRequire4dc0}}),n.parcelRequire4dc0=c;for(var p=0;pt.call(this))),re.push(this)}static get instances(){return re}static get version(){return\"4.3.23\"}static get env(){return\"production\"}static get build(){return\"1651825715464\"}static get config(){return h.default}static get utils(){return p}static get scheme(){return d.default}static get Emitter(){return c.default}static get validator(){return s.default}static get kindOf(){return s.default.kindOf}static get html(){return y.default.html}static get option(){return{container:\"#artplayer\",url:\"\",poster:\"\",title:\"\",type:\"\",theme:\"#f00\",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,fastForward:!1,autoPlayback:!1,autoOrientation:!1,ads:[],layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:\"\",number:60,column:10},subtitle:{url:\"\",type:\"\",style:{},encoding:\"utf-8\"},moreVideoAttr:{controls:!1,preload:p.isSafari?\"auto\":\"metadata\"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}destroy(e=!0){this.events.destroy(),this.template.destroy(e),re.splice(re.indexOf(this),1),this.isDestroy=!0,this.emit(\"destroy\")}}if(r.default=oe,oe.NOTICE_TIME=2e3,oe.SETTING_WIDTH=250,oe.SETTING_ITEM_WIDTH=200,oe.SETTING_ITEM_HEIGHT=35,oe.INDICATOR_SIZE=14,oe.INDICATOR_SIZE_ICON=16,oe.INDICATOR_SIZE_MOBILE=18,oe.INDICATOR_SIZE_MOBILE_ICON=20,oe.VOLUME_PANEL_WIDTH=60,oe.VOLUME_HANDLE_WIDTH=12,oe.RESIZE_TIME=500,oe.SCROLL_TIME=200,oe.SCROLL_GAP=50,oe.AUTO_PLAYBACK_MAX=10,oe.RECONNECT_TIME_MAX=5,oe.RECONNECT_SLEEP_TIME=1e3,oe.CONTROL_HIDE_TIME=3e3,oe.DB_CLICE_TIME=300,oe.MOBILE_AUTO_PLAYBACKRATE=3,oe.MOBILE_AUTO_PLAYBACKRATE_TIME=1e3,oe.MOBILE_AUTO_ORIENTATION_TIME=200,oe.INFO_LOOP_TIME=1e3,oe.FAST_FORWARD_VALUE=3,oe.FAST_FORWARD_TIME=1e3,\"undefined\"!=typeof document&&!document.getElementById(\"artplayer-style\")){const e=document.createElement(\"style\");e.id=\"artplayer-style\",e.textContent=n.default,document.head.appendChild(e)}\"undefined\"!=typeof window&&(window.Artplayer=oe),console.log(`%c ArtPlayer %c ${oe.version} %c https://artplayer.org`,\"color: #fff; background: #5f5f5f\",\"color: #fff; background: #4bc729\",\"\")},{\"bundle-text:./style/index.less\":\"9EPUe\",\"option-validator\":\"hqjoJ\",\"./utils/emitter\":\"7pHuB\",\"./utils\":\"geSvU\",\"./scheme\":\"3vPoh\",\"./config\":\"eksZR\",\"./whitelist\":\"fCKwj\",\"./template\":\"bqHdK\",\"./i18n\":\"4O9ZY\",\"./player\":\"fzROd\",\"./control\":\"kJ9J9\",\"./contextmenu\":\"7rh9q\",\"./info\":\"c896w\",\"./subtitle\":\"2hqso\",\"./events\":\"j2hlX\",\"./hotkey\":\"aTHWZ\",\"./layer\":\"f2kxw\",\"./loading\":\"bOs9w\",\"./notice\":\"ic4th\",\"./mask\":\"iLfmB\",\"./icons\":\"5lAmI\",\"./setting\":\"d5XKP\",\"./storage\":\"5M8nN\",\"./plugins\":\"jWfEd\",\"./ads\":\"aafSd\",\"./mobile\":\"fkUkB\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"9EPUe\":[function(e,t,r){t.exports='.art-video-player{z-index:20;width:100%;height:100%;zoom:1;color:#eee;text-align:left;direction:ltr;user-select:none;-webkit-tap-highlight-color:#0000;touch-action:manipulation;-ms-high-contrast-adjust:none;background-color:#000;outline:0;margin:0 auto;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;display:flex;position:relative}.art-video-player *{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:5px;height:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{justify-content:center;align-items:center;line-height:1.5;display:inline-flex}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter: initial) or (backdrop-filter: initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background-color:#000000b3!important}}.art-video-player .art-video{z-index:10;width:100%;height:100%;cursor:pointer;background-color:#000;position:absolute;inset:0}.art-video-player .art-poster{z-index:11;width:100%;height:100%;user-select:none;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;width:100%;text-align:center;color:#fff;pointer-events:none;text-shadow:1px 0 1px #000,0 1px 1px #000,-1px 0 1px #000,0 -1px 1px #000,1px 1px 1px #000,-1px -1px 1px #000,1px -1px 1px #000,-1px 1px 1px #000;padding:0 20px;font-size:20px;display:none;position:absolute;bottom:10px}.art-video-player .art-subtitle p{word-break:break-all;height:fit-content;margin:5px 0 0;line-height:1.2}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30;width:100%;height:100%;pointer-events:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{z-index:50;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0;overflow:hidden}.art-video-player .art-mask .art-state{width:60px;height:60px;opacity:.85;cursor:pointer;pointer-events:all;justify-content:center;align-items:center;display:flex;position:absolute;bottom:65px;right:30px}.art-video-player.art-mask-show .art-mask{display:flex}.art-video-player.art-mobile .art-state{position:static}.art-video-player .art-loading{z-index:70;width:100%;height:100%;pointer-events:none;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;height:100px;opacity:0;visibility:hidden;pointer-events:none;background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:space-between;padding:50px 10px 0;transition:all .2s ease-in-out;display:flex;position:absolute;bottom:0;left:0;right:0}.art-video-player .art-bottom .art-progress{z-index:0;pointer-events:auto;flex:1;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress{height:4px;cursor:pointer;flex-direction:row;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{height:50%;width:100%;background:#fff3;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;height:100%;width:0;background:#fff6;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;height:100%;width:0;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;height:100%;pointer-events:none;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{width:7px;height:100%;pointer-events:auto;background:#fff;display:inline-block;position:absolute;top:0;left:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{visibility:hidden;z-index:40;border-radius:50%;justify-content:center;align-items:center;transition:transform .1s ease-in-out;position:absolute;transform:scale(.1)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{width:100%;height:100%;pointer-events:none;user-select:none}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;height:20px;color:#fff;text-align:center;white-space:nowrap;background:#000000b3;border-radius:3px;padding:0 5px;font-size:12px;font-weight:700;line-height:20px;display:none;position:absolute;top:-25px;left:0}.art-video-player .art-bottom .art-progress .art-control-thumbnails{pointer-events:none;background-color:#000000b3;display:none;position:absolute;bottom:8px;left:0}.art-video-player .art-bottom .art-progress .art-control-loop{width:100%;height:100%;pointer-events:none;display:none;position:absolute;inset:0}.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point{width:2px;height:8px;background:#ffffffbf;position:absolute;top:-2px;left:0}.art-video-player .art-bottom .art-controls{z-index:1;pointer-events:auto;height:45px;justify-content:space-between;align-items:center;display:flex;position:relative}.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:flex}.art-video-player .art-bottom .art-controls .art-controls-right{justify-content:flex-end}.art-video-player .art-bottom .art-controls .art-control{opacity:.9;min-height:36px;min-width:36px;text-align:center;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;font-size:12px;line-height:1;display:flex}.art-video-player .art-bottom .art-controls .art-control .art-icon{float:left;height:36px;width:36px;justify-content:center;align-items:center;display:flex}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{float:left;width:0;height:100%;transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);position:relative;overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{width:12px;height:12px;background:#fff;border-radius:12px;margin-top:-6px;position:absolute;top:50%;left:0}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{background:#fff;left:-54px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{background:#fff3;left:6px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{content:\"\";height:3px;width:60px;margin-top:-2px;display:block;position:absolute;top:50%}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{z-index:30;position:relative}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{width:100px;text-align:center;color:#fff;background:#000c;border-radius:3px;padding:5px 0;display:none;position:absolute;bottom:35px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;line-height:30px;overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:#ffffff1a}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner{height:100%}.art-video-player .art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{visibility:visible;transform:scale(1)}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-error .art-progress-indicator,.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-error .art-progress-tip,.art-video-player.art-destroy .art-progress-tip{display:none!important}.art-video-player.art-mobile .art-bottom{padding:50px 7px 0}.art-video-player.art-mobile .art-bottom .art-controls{height:40px}.art-video-player.art-mobile .art-bottom .art-progress-indicator{visibility:visible!important;transform:scale(1)!important}.art-video-player .art-notice{z-index:80;width:100%;pointer-events:none;padding:10px;font-size:14px;display:none;position:absolute;top:0;left:0}.art-video-player .art-notice .art-notice-inner{color:#fff;background-color:#0009;border-radius:3px;padding:5px 10px;display:inline-block}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;min-width:200px;background-color:#000000e6;border-radius:3px;flex-direction:column;padding:5px 0;display:none;position:absolute;top:10px;left:10px}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;border-bottom:1px solid #ffffff1a;padding:10px 15px;font-size:12px;display:block;overflow:hidden}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 7px;display:inline-block}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:0}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;height:auto;max-height:300px;background-color:#000000e6;border-radius:3px;font-size:13px;transition:all .2s;display:none;position:absolute;bottom:50px;right:10px;overflow:auto}.art-video-player .art-settings .art-setting-panel{display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:block}.art-video-player .art-settings .art-setting-panel .art-setting-item{height:35px;cursor:pointer;color:#fffc;justify-content:space-between;align-items:center;padding:0 5px;line-height:1;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover,.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:#fff;background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon{width:30px;height:30px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{white-space:nowrap;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:24px;width:24px;justify-content:center;align-items:center;margin-right:10px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80;font-size:12px}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{height:24px;width:24px;justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:block}.art-video-player.art-mobile .art-settings{max-height:200px}.art-video-player .art-info{z-index:100;width:350px;color:#fff;-webkit-font-smoothing:antialiased;background-color:#000000e6;flex-direction:column;padding:10px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;font-size:12px;display:none;position:absolute;top:10px;left:10px}.art-video-player .art-info .art-info-item{margin-bottom:5px;display:flex}.art-video-player .art-info .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;flex:1;padding-left:5px;overflow:hidden}.art-video-player .art-info .art-info-item:last-child{margin-bottom:0}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-video-player.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;object-fit:fill}.art-video-player.art-fullscreen-web{z-index:9999;width:100%;height:100%;position:fixed;inset:0}.art-fullscreen-rotate{z-index:9999;width:100%;height:100%;background-color:#000;position:fixed;inset:0}.art-video-player .art-mini-header{z-index:110;height:35px;color:#fff;opacity:0;visibility:hidden;background-color:#00000080;justify-content:space-between;align-items:center;line-height:35px;transition:all .2s ease-in-out;display:none;position:absolute;top:0;left:0;right:0}.art-video-player .art-mini-header .art-mini-title{text-overflow:ellipsis;white-space:nowrap;cursor:move;flex:1;padding:0 10px;overflow:hidden}.art-video-player .art-mini-header .art-mini-close{width:35px;text-align:center;cursor:pointer;font-size:22px}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-mini{z-index:9999;width:400px;height:225px;position:fixed;box-shadow:0 2px 5px #00000029,0 3px 6px #0003}.art-video-player.art-mini .art-mini-header{user-select:none;display:flex}.art-video-player.art-mini.art-hover .art-mini-header{opacity:1;visibility:visible}.art-video-player.art-mini .art-mask .art-state{position:static}.art-video-player.art-mini .art-contextmenu,.art-video-player.art-mini .art-bottom,.art-video-player.art-mini .art-danmu,.art-video-player.art-mini .art-info,.art-video-player.art-mini .art-layers,.art-video-player.art-mini .art-notice,.art-video-player.art-mini .art-setting,.art-video-player.art-mini .art-subtitle{display:none!important}.art-auto-size{justify-content:center;align-items:center;display:flex}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-miniProgressBar{height:2px;background-color:var(--theme);display:block;position:absolute;bottom:0;left:0;right:0}.art-video-player .art-layer-lock{height:34px;width:34px;color:#fff;background-color:#00000080;border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;top:calc(50% - 17px);left:15px}.art-video-player.art-lock .art-bottom{display:none!important}.art-video-player.art-lock .art-subtitle{bottom:10px!important}.art-video-player.art-lock .art-layer-miniProgressBar{display:block!important}.art-video-player.art-control-show .art-layer-miniProgressBar{display:none}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-video-player .art-control-selector{position:relative}.art-video-player .art-control-selector .art-selector-list{min-width:100px;max-width:200px;max-height:200px;text-align:center;color:#fff;background-color:#000c;border-radius:3px;padding:5px 0;display:none;position:absolute;bottom:35px;overflow:auto}.art-video-player .art-control-selector .art-selector-list .art-selector-item{height:30px;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px #00000080;padding:0 5px;line-height:30px;overflow:hidden}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover,.art-video-player .art-control-selector .art-selector-list .art-selector-item.art-current{color:#00c9ff}.art-video-player .art-control-selector:hover .art-selector-list{display:block}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:\"\";z-index:1000000;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=\"\"]:before,[aria-label=\"\"]:after,[data-hint=\"\"]:before,[data-hint=\"\"]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}'},{}],hqjoJ:[function(e,t,r){t.exports=function(){\"use strict\";function e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var i=e(r);if(\"boolean\"===i)return\"boolean\";if(\"string\"===i)return\"string\";if(\"number\"===i)return\"number\";if(\"symbol\"===i)return\"symbol\";if(\"function\"===i)return function(e){return\"GeneratorFunction\"===o(e)}(r)?\"generatorfunction\":\"function\";if(function(e){return Array.isArray?Array.isArray(e):e instanceof Array}(r))return\"array\";if(function(e){return!(!e.constructor||\"function\"!=typeof e.constructor.isBuffer)&&e.constructor.isBuffer(e)}(r))return\"buffer\";if(function(e){try{if(\"number\"==typeof e.length&&\"function\"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(e){return e instanceof Date||\"function\"==typeof e.toDateString&&\"function\"==typeof e.getDate&&\"function\"==typeof e.setDate}(r))return\"date\";if(function(e){return e instanceof Error||\"string\"==typeof e.message&&e.constructor&&\"number\"==typeof e.constructor.stackTraceLimit}(r))return\"error\";if(function(e){return e instanceof RegExp||\"string\"==typeof e.flags&&\"boolean\"==typeof e.ignoreCase&&\"boolean\"==typeof e.multiline&&\"boolean\"==typeof e.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(e){return\"function\"==typeof e.throw&&\"function\"==typeof e.return&&\"function\"==typeof e.next}(r))return\"generator\";switch(i=t.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return i.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(e){return e.constructor?e.constructor.name:null}function i(e,t){var o=2n)),o.export(r,\"queryAll\",(()=>a)),o.export(r,\"addClass\",(()=>s)),o.export(r,\"removeClass\",(()=>l)),o.export(r,\"hasClass\",(()=>c)),o.export(r,\"append\",(()=>p)),o.export(r,\"remove\",(()=>u)),o.export(r,\"setStyle\",(()=>d)),o.export(r,\"setStyles\",(()=>f)),o.export(r,\"getStyle\",(()=>h)),o.export(r,\"sublings\",(()=>m)),o.export(r,\"inverseClass\",(()=>g)),o.export(r,\"tooltip\",(()=>v)),o.export(r,\"isInViewport\",(()=>y)),o.export(r,\"includeFromEvent\",(()=>b)),o.export(r,\"replaceElement\",(()=>x));var i=e(\"./compatibility\");function n(e,t=document){return t.querySelector(e)}function a(e,t=document){return Array.from(t.querySelectorAll(e))}function s(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function c(e,t){return e.classList.contains(t)}function p(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML(\"beforeend\",String(t)),e.lastElementChild||e.lastChild}function u(e){return e.parentNode.removeChild(e)}function d(e,t,r){return e.style[t]=r,e}function f(e,t){return Object.keys(t).forEach((r=>{d(e,r,t[r])})),e}function h(e,t,r=!0){const o=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(o):o}function m(e){return Array.from(e.parentElement.children).filter((t=>t!==e))}function g(e,t){m(e).forEach((e=>l(e,t))),s(e,t)}function v(e,t,r=\"top\"){i.isMobile||(e.setAttribute(\"aria-label\",t),s(e,\"hint--rounded\"),s(e,`hint--${r}`))}function y(e,t=0){const r=e.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight,i=window.innerWidth||document.documentElement.clientWidth,n=r.top-t<=o&&r.top+r.height+t>=0,a=r.left-t<=i+t&&r.left+r.width+t>=0;return n&&a}function b(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function x(e,t){return t.parentNode.replaceChild(e,t),e}},{\"./compatibility\":\"ki3pQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],ki3pQ:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r),o.export(r,\"userAgent\",(()=>i)),o.export(r,\"isMobile\",(()=>n)),o.export(r,\"isSafari\",(()=>a)),o.export(r,\"isWechat\",(()=>s)),o.export(r,\"isIE\",(()=>l));const i=\"undefined\"!=typeof window?window.navigator.userAgent:\"\",n=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i),a=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i)},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],lDQPM:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r),o.export(r,\"ArtPlayerError\",(()=>i)),o.export(r,\"errorHandle\",(()=>n));class i extends Error{constructor(e,t){super(e),\"function\"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name=\"ArtPlayerError\"}}function n(e,t){if(!e)throw new i(t);return e}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"1dyFb\":[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");function i(e){return\"WEBVTT \\r\\n\\r\\n\".concat((t=e,t.replace(/(\\d\\d:\\d\\d:\\d\\d)[,.](\\d+)/g,((e,t,r)=>{let o=r.slice(0,3);return 1===r.length&&(o=r+\"00\"),2===r.length&&(o=r+\"0\"),`${t},${o}`}))).replace(/\\{\\\\([ibu])\\}/g,\"\").replace(/\\{\\\\([ibu])1\\}/g,\"<$1>\").replace(/\\{([ibu])\\}/g,\"<$1>\").replace(/\\{\\/([ibu])\\}/g,\"\").replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g,\"$1.$2\").replace(/{[\\s\\S]*?}/g,\"\").concat(\"\\r\\n\\r\\n\"));var t}function n(e){return URL.createObjectURL(new Blob([e],{type:\"text/vtt\"}))}function a(e){const t=new RegExp(\"Dialogue:\\\\s\\\\d,(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\\\s\\\\S]*)$\",\"i\");function r(e=\"\"){return e.split(/[:.]/).map(((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?\"0\":\":0\")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`})).join(\"\")}return`WEBVTT\\n\\n${e.split(/\\r?\\n/).map((e=>{const o=e.match(t);return o?{start:r(o[1].trim()),end:r(o[2].trim()),text:o[5].replace(/{[\\s\\S]*?}/g,\"\").replace(/(\\\\N)/g,\"\\n\").trim().split(/\\r?\\n/).map((e=>e.trim())).join(\"\\n\")}:null})).filter((e=>e)).map(((e,t)=>e?`${t+1}\\n${e.start} --\\x3e ${e.end}\\n${e.text}`:\"\")).filter((e=>e.trim())).join(\"\\n\\n\")}`}o.defineInteropFlag(r),o.export(r,\"srtToVtt\",(()=>i)),o.export(r,\"vttToBlob\",(()=>n)),o.export(r,\"assToVtt\",(()=>a))},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"96gQe\":[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");function i(e){return e.includes(\"?\")?i(e.split(\"?\")[0]):e.includes(\"#\")?i(e.split(\"#\")[0]):e.trim().toLowerCase().split(\".\").pop()}function n(e,t){const r=document.createElement(\"a\");r.style.display=\"none\",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,\"getExt\",(()=>i)),o.export(r,\"download\",(()=>n))},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],lMM6V:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r),o.export(r,\"def\",(()=>i)),o.export(r,\"has\",(()=>a)),o.export(r,\"get\",(()=>s)),o.export(r,\"mergeDeep\",(()=>l));const i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function a(e,t){return n.call(e,t)}function s(e,t){return Object.getOwnPropertyDescriptor(e,t)}function l(...e){const t=e=>e&&\"object\"==typeof e&&!Array.isArray(e);return e.reduce(((e,r)=>(Object.keys(r).forEach((o=>{const i=e[o],n=r[o];Array.isArray(i)&&Array.isArray(n)?e[o]=i.concat(...n):!t(i)||!t(n)||n instanceof Element?e[o]=n:e[o]=l(i,n)})),e)),{})}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"41yFW\":[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");function i(e=0){return new Promise((t=>setTimeout(t,e)))}function n(e,t,r){let o;function i(...i){clearTimeout(o),o=setTimeout((function(){o=null,e.apply(r,i)}),t)}return i.clearTimeout=function(){clearTimeout(o)},i}function a(e,t){let r,o,i=!1;return function n(...a){if(i)return r=a,void(o=this);i=!0,e.apply(this,a),setTimeout((()=>{i=!1,r&&(n.apply(o,r),r=null,o=null)}),t)}}o.defineInteropFlag(r),o.export(r,\"sleep\",(()=>i)),o.export(r,\"debounce\",(()=>n)),o.export(r,\"throttle\",(()=>a))},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],MRJhs:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){const t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),o=Math.floor(e-3600*t-60*r);return(t>0?[t,r,o]:[r,o]).map((e=>e<10?`0${e}`:String(e))).join(\":\")}function a(e){return e.replace(/[&<>'\"]/g,(e=>({\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"}[e]||e)))}o.defineInteropFlag(r),o.export(r,\"clamp\",(()=>i)),o.export(r,\"secondToTime\",(()=>n)),o.export(r,\"escape\",(()=>a))},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"3vPoh\":[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r),o.export(r,\"ComponentOption\",(()=>u));var i=e(\"../utils\");const n=\"boolean\",a=\"string\",s=\"number\",l=\"object\",c=\"function\";function p(e,t,r){return i.errorHandle(t===a||e instanceof Element,`${r.join(\".\")} require '${a}' or 'Element' type`)}const u={html:p,disable:`?${n}`,name:`?${a}`,index:`?${s}`,style:`?${l}`,click:`?${c}`,mounted:`?${c}`,tooltip:`?${a}`,width:`?${s}`,selector:\"?array\",onSelect:`?${c}`};r.default={container:p,url:a,poster:a,title:a,type:a,theme:a,lang:a,volume:s,isLive:n,muted:n,autoplay:n,autoSize:n,autoMini:n,loop:n,flip:n,playbackRate:n,aspectRatio:n,screenshot:n,setting:n,hotkey:n,pip:n,mutex:n,backdrop:n,fullscreen:n,fullscreenWeb:n,subtitleOffset:n,miniProgressBar:n,useSSR:n,playsInline:n,lock:n,fastForward:n,autoPlayback:n,autoOrientation:n,ads:[{url:a}],plugins:[c],whitelist:[`${a}|${c}|regexp`],layers:[u],contextmenu:[u],settings:[u],controls:[{...u,position:(e,t,r)=>{const o=[\"top\",\"left\",\"right\"];return i.errorHandle(o.includes(e),`${r.join(\".\")} only accept ${o.toString()} as parameters`)}}],quality:[{default:`?${n}`,html:a,url:a}],highlight:[{time:s,text:a}],thumbnails:{url:a,number:s,column:s},subtitle:{url:a,type:a,style:l,encoding:a},moreVideoAttr:l,icons:l,customType:l}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],eksZR:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r),r.default={propertys:[\"audioTracks\",\"autoplay\",\"buffered\",\"controller\",\"controls\",\"crossOrigin\",\"currentSrc\",\"currentTime\",\"defaultMuted\",\"defaultPlaybackRate\",\"duration\",\"ended\",\"error\",\"loop\",\"mediaGroup\",\"muted\",\"networkState\",\"paused\",\"playbackRate\",\"played\",\"preload\",\"readyState\",\"seekable\",\"seeking\",\"src\",\"startDate\",\"textTracks\",\"videoTracks\",\"volume\"],methods:[\"addTextTrack\",\"canPlayType\",\"load\",\"play\",\"pause\"],events:[\"abort\",\"canplay\",\"canplaythrough\",\"durationchange\",\"emptied\",\"ended\",\"error\",\"loadeddata\",\"loadedmetadata\",\"loadstart\",\"pause\",\"play\",\"playing\",\"progress\",\"ratechange\",\"seeked\",\"seeking\",\"stalled\",\"suspend\",\"timeupdate\",\"volumechange\",\"waiting\"],prototypes:[\"width\",\"height\",\"videoWidth\",\"videoHeight\",\"poster\",\"webkitDecodedFrameCount\",\"webkitDroppedFrameCount\",\"playsInline\",\"webkitSupportsFullscreen\",\"webkitDisplayingFullscreen\",\"onenterpictureinpicture\",\"onleavepictureinpicture\",\"disablePictureInPicture\",\"cancelVideoFrameCallback\",\"requestVideoFrameCallback\",\"getVideoPlaybackQuality\",\"requestPictureInPicture\",\"webkitEnterFullScreen\",\"webkitEnterFullscreen\",\"webkitExitFullScreen\",\"webkitExitFullscreen\"]}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],fCKwj:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"./utils\");r.default=class{constructor(e){this.art=e}get state(){const{option:e,constructor:{kindOf:t}}=this.art;return!o.isMobile||e.whitelist.some((e=>{switch(t(e)){case\"string\":return\"*\"===e||o.userAgent.indexOf(e)>-1;case\"function\":return e(o.userAgent);case\"regexp\":return e.test(o.userAgent);default:return!1}}))}}},{\"./utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],bqHdK:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"./utils\");class i{constructor(e){this.art=e;const{option:t,constructor:r,whitelist:i}=e;t.container instanceof Element?this.$container=t.container:(this.$container=o.query(t.container),o.errorHandle(this.$container,`No container element found by ${t.container}`));const n=this.$container.tagName.toLowerCase();o.errorHandle(\"div\"===n,`Unsupported container element type, only support 'div' but got '${n}'`),o.errorHandle(r.instances.every((e=>e.template.$container!==this.$container)),\"Cannot mount multiple instances on the same dom element\"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.$original=this.$container.cloneNode(!0),i.state?this.desktop():this.mobile()}static get html(){return'
Player version:
4.3.23
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
×
'}query(e){return o.query(e,this.$container)}desktop(){const{option:e}=this.art;e.useSSR||(this.$container.innerHTML=i.html),this.$player=this.query(\".art-video-player\"),this.$video=this.query(\".art-video\"),this.$poster=this.query(\".art-poster\"),this.$subtitle=this.query(\".art-subtitle\"),this.$danmuku=this.query(\".art-danmuku\"),this.$bottom=this.query(\".art-bottom\"),this.$progress=this.query(\".art-progress\"),this.$controls=this.query(\".art-controls\"),this.$controlsLeft=this.query(\".art-controls-left\"),this.$controlsRight=this.query(\".art-controls-right\"),this.$layer=this.query(\".art-layers\"),this.$loading=this.query(\".art-loading\"),this.$notice=this.query(\".art-notice\"),this.$noticeInner=this.query(\".art-notice-inner\"),this.$mask=this.query(\".art-mask\"),this.$state=this.query(\".art-state\"),this.$setting=this.query(\".art-settings\"),this.$info=this.query(\".art-info\"),this.$infoPanel=this.query(\".art-info-panel\"),this.$infoClose=this.query(\".art-info-close\"),this.$miniHeader=this.query(\".art-mini-header\"),this.$miniTitle=this.query(\".art-mini-title\"),this.$miniClose=this.query(\".art-mini-close\"),this.$contextmenu=this.query(\".art-contextmenus\"),e.backdrop&&(o.addClass(this.$setting,\"art-backdrop-filter\"),o.addClass(this.$contextmenu,\"art-backdrop-filter\"),o.addClass(this.$info,\"art-backdrop-filter\")),o.isMobile&&o.addClass(this.$player,\"art-mobile\")}mobile(){this.$container.innerHTML='
',this.$player=this.query(\".art-video-player\"),this.$video=this.query(\".art-video\")}destroy(e){e?o.replaceElement(this.$original,this.$container):o.addClass(this.$player,\"art-destroy\")}}r.default=i},{\"./utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"4O9ZY\":[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"../utils\"),n=e(\"./zh-cn.json\"),a=o.interopDefault(n),s=e(\"./zh-tw.json\"),l=o.interopDefault(s),c=e(\"./pl.json\"),p=o.interopDefault(c),u=e(\"./cs.json\"),d=o.interopDefault(u);r.default=class{constructor(e){this.art=e,this.languages={\"zh-cn\":a.default,\"zh-tw\":l.default,pl:p.default,cs:d.default},this.init()}init(){const e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=i.mergeDeep(this.languages,e),this.init()}}},{\"../utils\":\"geSvU\",\"./zh-cn.json\":\"e7BQ4\",\"./zh-tw.json\":\"5kFyN\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\",\"./pl.json\":\"3cd1e\",\"./cs.json\":\"an7cR\"}],e7BQ4:[function(e,t,r){t.exports=JSON.parse('{\"Video Info\":\"统计信息\",\"Close\":\"关闭\",\"Video Load Failed\":\"加载失败\",\"Volume\":\"音量\",\"Play\":\"播放\",\"Pause\":\"暂停\",\"Rate\":\"速度\",\"Mute\":\"静音\",\"Video Flip\":\"画面翻转\",\"Horizontal\":\"水平\",\"Vertical\":\"垂直\",\"Reconnect\":\"重新连接\",\"Hide Subtitle\":\"隐藏字幕\",\"Show Subtitle\":\"显示字幕\",\"Show Setting\":\"显示设置\",\"Hide Setting\":\"隐藏设置\",\"Screenshot\":\"截图\",\"Play Speed\":\"播放速度\",\"Aspect Ratio\":\"画面比例\",\"Default\":\"默认\",\"Normal\":\"正常\",\"Open\":\"打开\",\"Switch Video\":\"切换\",\"Switch Subtitle\":\"切换字幕\",\"Fullscreen\":\"全屏\",\"Exit Fullscreen\":\"退出全屏\",\"Web Fullscreen\":\"网页全屏\",\"Exit Web Fullscreen\":\"退出网页全屏\",\"Mini Player\":\"迷你播放器\",\"PIP Mode\":\"开启画中画\",\"Exit PIP Mode\":\"退出画中画\",\"PIP Not Supported\":\"不支持画中画\",\"Fullscreen Not Supported\":\"不支持全屏\",\"Subtitle Offset\":\"字幕偏移\",\"Auto playback at\":\"已为您定位至\"}')},{}],\"5kFyN\":[function(e,t,r){t.exports=JSON.parse('{\"Video Info\":\"統計訊息\",\"Close\":\"關閉\",\"Video Load Failed\":\"載入失敗\",\"Volume\":\"音量\",\"Play\":\"播放\",\"Pause\":\"暫停\",\"Rate\":\"速度\",\"Mute\":\"靜音\",\"Video Flip\":\"畫面翻轉\",\"Horizontal\":\"水平\",\"Vertical\":\"垂直\",\"Reconnect\":\"重新連接\",\"Hide Subtitle\":\"隱藏字幕\",\"Show Subtitle\":\"顯示字幕\",\"Show Setting\":\"顯示设置\",\"Hide Setting\":\"隱藏设置\",\"Screenshot\":\"截圖\",\"Play Speed\":\"播放速度\",\"Aspect Ratio\":\"畫面比例\",\"Default\":\"默認\",\"Normal\":\"正常\",\"Open\":\"打開\",\"Switch Video\":\"切換\",\"Switch Subtitle\":\"切換字幕\",\"Fullscreen\":\"全屏\",\"Exit Fullscreen\":\"退出全屏\",\"Web Fullscreen\":\"網頁全屏\",\"Exit Web Fullscreen\":\"退出網頁全屏\",\"Mini Player\":\"迷你播放器\",\"PIP Mode\":\"開啟畫中畫\",\"Exit PIP Mode\":\"退出畫中畫\",\"PIP Not Supported\":\"不支持畫中畫\",\"Fullscreen Not Supported\":\"不支持全屏\",\"Subtitle Offset\":\"字幕偏移\",\"Auto playback at\":\"已為您定位至\"}')},{}],\"3cd1e\":[function(e,t,r){t.exports=JSON.parse('{\"Video Info\":\"Informacje o wideo\",\"Close\":\"Zamknij\",\"Video Load Failed\":\"Błąd ładowania wideo\",\"Volume\":\"Głośność\",\"Play\":\"Odtwórz\",\"Pause\":\"Wstrzymaj\",\"Rate\":\"Oceń\",\"Mute\":\"Wycisz\",\"Video Flip\":\"Rotacja wideo\",\"Horizontal\":\"Pozioma\",\"Vertical\":\"Pionowa\",\"Reconnect\":\"Połącz ponownie\",\"Hide Subtitle\":\"Ukryj napisy\",\"Show Subtitle\":\"Pokaż napisy\",\"Show Setting\":\"Pokaż ustawienia\",\"Hide Setting\":\"Ukryj ustawienia\",\"Screenshot\":\"Zrzut ekranu\",\"Play Speed\":\"Prędkość odtwarzania\",\"Aspect Ratio\":\"Współczynnik proporcji\",\"Default\":\"Domyślny\",\"Normal\":\"Normalny\",\"Open\":\"Otwórz\",\"Switch Video\":\"Przełącz wideo\",\"Switch Subtitle\":\"Przełącz napisy\",\"Fullscreen\":\"Pełny ekran\",\"Exit Fullscreen\":\"Zamknij pełny ekran\",\"Web Fullscreen\":\"Tryb pełnej strony\",\"Exit Web Fullscreen\":\"Zamknij tryb pełnej strony\",\"Mini Player\":\"Miniodtwarzacz\",\"PIP Mode\":\"Tryb PiP\",\"Exit PIP Mode\":\"Zamknij tryb PiP\",\"PIP Not Supported\":\"Tryb PiP nieobsługiwany\",\"Fullscreen Not Supported\":\"Pełny ekran nieobsługiwany\",\"Subtitle Offset\":\"Przesunięcie napisów\",\"Auto playback at\":\"Automatyczne odtwarzanie za\"}')},{}],an7cR:[function(e,t,r){t.exports=JSON.parse('{\"Video Info\":\"Info o videu\",\"Close\":\"Zavřít\",\"Video Load Failed\":\"Nahrání videa selhalo\",\"Volume\":\"Hlasitost\",\"Play\":\"Přehrát\",\"Pause\":\"Pozastavit\",\"Rate\":\"Hodnocení\",\"Mute\":\"Ztlumit\",\"Video Flip\":\"Otočit video\",\"Horizontal\":\"Horizontálně\",\"Vertical\":\"Vertikálně\",\"Reconnect\":\"Opětovné připojení\",\"Hide Subtitle\":\"Skrýt titulky\",\"Show Subtitle\":\"Ukázat titulky\",\"Show Setting\":\"Zobrazit nastavení\",\"Hide Setting\":\"Skrýt nastavení\",\"Screenshot\":\"Snímek obrazovky\",\"Play Speed\":\"Rychlost přehrávání\",\"Aspect Ratio\":\"Poměr stran\",\"Default\":\"Výchozí\",\"Normal\":\"Normální\",\"Open\":\"Otevřít\",\"Switch Video\":\"Přepnout video\",\"Switch Subtitle\":\"Přepnout titulky\",\"Fullscreen\":\"Celá obrazovka\",\"Exit Fullscreen\":\"Opustit režim celé obrazovky\",\"Web Fullscreen\":\"Celá stránka\",\"Exit Web Fullscreen\":\"Zavřít režim celé stránky\",\"Mini Player\":\"Mini přehrávač\",\"PIP Mode\":\"Režim PIP\",\"Exit PIP Mode\":\"Opustit režim PIP\",\"PIP Not Supported\":\"Režim PIP není podporován\",\"Fullscreen Not Supported\":\"Režim celé obrazovky není podporován\",\"Subtitle Offset\":\"Posun titulků\",\"Auto playback at\":\"Automatické přehrávání za\"}')},{}],fzROd:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"./urlMix\"),n=o.interopDefault(i),a=e(\"./attrMix\"),s=o.interopDefault(a),l=e(\"./playMix\"),c=o.interopDefault(l),p=e(\"./pauseMix\"),u=o.interopDefault(p),d=e(\"./toggleMix\"),f=o.interopDefault(d),h=e(\"./seekMix\"),m=o.interopDefault(h),g=e(\"./volumeMix\"),v=o.interopDefault(g),y=e(\"./currentTimeMix\"),b=o.interopDefault(y),x=e(\"./durationMix\"),w=o.interopDefault(x),j=e(\"./switchMix\"),k=o.interopDefault(j),S=e(\"./playbackRateMix\"),I=o.interopDefault(S),R=e(\"./aspectRatioMix\"),$=o.interopDefault(R),O=e(\"./screenshotMix\"),M=o.interopDefault(O),T=e(\"./fullscreenMix\"),E=o.interopDefault(T),F=e(\"./fullscreenWebMix\"),C=o.interopDefault(F),P=e(\"./pipMix\"),z=o.interopDefault(P),D=e(\"./loadedMix\"),H=o.interopDefault(D),A=e(\"./playedMix\"),L=o.interopDefault(A),U=e(\"./playingMix\"),Z=o.interopDefault(U),_=e(\"./autoSizeMix\"),V=o.interopDefault(_),q=e(\"./rectMix\"),N=o.interopDefault(q),W=e(\"./flipMix\"),B=o.interopDefault(W),Y=e(\"./miniMix\"),G=o.interopDefault(Y),X=e(\"./loopMix\"),J=o.interopDefault(X),Q=e(\"./posterMix\"),K=o.interopDefault(Q),ee=e(\"./autoHeightMix\"),te=o.interopDefault(ee),re=e(\"./themeMix\"),oe=o.interopDefault(re),ie=e(\"./titleMix\"),ne=o.interopDefault(ie),ae=e(\"./normalSizeMix\"),se=o.interopDefault(ae),le=e(\"./subtitleOffsetMix\"),ce=o.interopDefault(le),pe=e(\"./optionInit\"),ue=o.interopDefault(pe),de=e(\"./eventInit\"),fe=o.interopDefault(de);r.default=class{constructor(e){n.default(e),s.default(e),c.default(e),u.default(e),f.default(e),m.default(e),v.default(e),b.default(e),w.default(e),k.default(e),I.default(e),$.default(e),M.default(e),E.default(e),C.default(e),z.default(e),H.default(e),L.default(e),Z.default(e),V.default(e),N.default(e),B.default(e),G.default(e),J.default(e),K.default(e),te.default(e),oe.default(e),ne.default(e),se.default(e),ce.default(e),fe.default(e),ue.default(e)}}},{\"./urlMix\":\"cChak\",\"./attrMix\":\"e6Qkm\",\"./playMix\":\"1FNSV\",\"./pauseMix\":\"aPHUd\",\"./toggleMix\":\"joISC\",\"./seekMix\":\"4wG3e\",\"./volumeMix\":\"42Xo1\",\"./currentTimeMix\":\"8Z3pM\",\"./durationMix\":\"hpnJy\",\"./switchMix\":\"aCsa8\",\"./playbackRateMix\":\"61TVa\",\"./aspectRatioMix\":\"8BV9k\",\"./screenshotMix\":\"bop8O\",\"./fullscreenMix\":\"i63VK\",\"./fullscreenWebMix\":\"bEKHA\",\"./pipMix\":\"ibIuh\",\"./loadedMix\":\"kwpxq\",\"./playedMix\":\"e4Iws\",\"./playingMix\":\"fueZP\",\"./autoSizeMix\":\"l6TMg\",\"./rectMix\":\"6URTt\",\"./flipMix\":\"joth7\",\"./miniMix\":\"durkk\",\"./loopMix\":\"5EZwI\",\"./posterMix\":\"22WMt\",\"./autoHeightMix\":\"8pdNr\",\"./themeMix\":\"eADqm\",\"./titleMix\":\"8T9U6\",\"./subtitleOffsetMix\":\"8CMLG\",\"./optionInit\":\"aqLU7\",\"./eventInit\":\"59ETf\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\",\"./normalSizeMix\":\"iEQHG\"}],cChak:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{option:t,template:{$video:r}}=e;o.def(e,\"url\",{get:()=>r.currentSrc,async set(i){const n=t.type||o.getExt(i),a=t.customType[n];n&&a?(await o.sleep(),e.loading.show=!0,a.call(e,r,i,e)):(e.url&&e.url!==i&&e.once(\"video:canplay\",(()=>{e.isReady&&e.emit(\"restart\")})),r.src=i,e.option.url=i,e.emit(\"url\",i))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],e6Qkm:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{template:{$video:t}}=e;o.def(e,\"attr\",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"1FNSV\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{i18n:t,notice:r,option:i,constructor:{instances:n},template:{$video:a}}=e;o.def(e,\"play\",{value(){const o=a.play();if(o&&o.then&&o.then().catch((e=>{throw r.show=e,e})),i.mutex)for(let t=0;te.playing?e.pause():e.play()})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"4wG3e\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{notice:t}=e;o.def(e,\"seek\",{set(r){e.currentTime=r,e.emit(\"seek\",e.currentTime),e.duration&&(t.show=`${o.secondToTime(e.currentTime)} / ${o.secondToTime(e.duration)}`)}}),o.def(e,\"forward\",{set(t){e.seek=e.currentTime+t}}),o.def(e,\"backward\",{set(t){e.seek=e.currentTime-t}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"42Xo1\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{template:{$video:t},i18n:r,notice:i,storage:n}=e;o.def(e,\"volume\",{get:()=>t.volume||0,set:a=>{t.volume=o.clamp(a,0,1),i.show=`${r.get(\"Volume\")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&n.set(\"volume\",t.volume),e.emit(\"volume\",t.volume)}}),o.def(e,\"muted\",{get:()=>t.muted,set:r=>{t.muted=r,e.emit(\"volume\",t.volume)}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"8Z3pM\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{$video:t}=e.template;o.def(e,\"currentTime\",{get:()=>t.currentTime||0,set:r=>{r=parseFloat(r),Number.isNaN(r)||(t.currentTime=o.clamp(r,0,e.duration))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],hpnJy:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){o.def(e,\"duration\",{get:()=>{const{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],aCsa8:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{i18n:t,option:r,notice:i}=e;function n(o,n,a){return new Promise((s=>{if(o===e.url)return s(o);const{playing:l}=e;e.pause(),URL.revokeObjectURL(e.url),e.url=o,e.once(\"video:canplay\",(()=>{e.playbackRate=!1,e.aspectRatio=!1,e.flip=\"normal\",e.autoSize=r.autoSize,e.currentTime=a,e.notice.show=\"\",l&&e.play(),n&&(i.show=`${t.get(\"Switch Video\")}: ${n}`),e.emit(\"switch\",o),s(o)}))}))}o.def(e,\"switchQuality\",{value:(t,r)=>n(t,r,e.currentTime)}),o.def(e,\"switchUrl\",{value:(e,t)=>n(e,t,0)})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"61TVa\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{template:{$video:t},i18n:r,notice:i}=e;o.def(e,\"playbackRate\",{get:()=>t.playbackRate,set(n){if(n){if(n===t.playbackRate)return;const a=[.25,.5,.75,1,1.25,1.5,1.75,2,3,4];o.errorHandle(a.includes(n),`'playbackRate' only accept ${a.toString()} as parameters`),t.playbackRate=n,i.show=`${r.get(\"Rate\")}: ${1===n?r.get(\"Normal\"):`${n}x`}`,e.emit(\"playbackRate\",n)}else e.playbackRate=1,e.emit(\"playbackRate\")}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"8BV9k\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{template:{$video:t,$player:r},i18n:i,notice:n}=e;o.def(e,\"aspectRatio\",{get:()=>r.dataset.aspectRatio||\"default\",set(a){a||(a=\"default\");const s=[\"default\",\"4:3\",\"16:9\"];if(o.errorHandle(s.includes(a),`'aspectRatio' only accept ${s.toString()} as parameters`),\"default\"===a)o.setStyle(t,\"width\",null),o.setStyle(t,\"height\",null),o.setStyle(t,\"padding\",null),delete r.dataset.aspectRatio;else{const e=a.split(\":\").map(Number),{videoWidth:i,videoHeight:n}=t,{clientWidth:s,clientHeight:l}=r,c=i/n,p=e[0]/e[1];if(c>p){const e=p*n/i;o.setStyle(t,\"width\",100*e+\"%\"),o.setStyle(t,\"height\",\"100%\"),o.setStyle(t,\"padding\",`0 ${(s-s*e)/2}px`)}else{const e=i/p/n;o.setStyle(t,\"width\",\"100%\"),o.setStyle(t,\"height\",100*e+\"%\"),o.setStyle(t,\"padding\",(l-l*e)/2+\"px 0\")}r.dataset.aspectRatio=a}n.show=`${i.get(\"Aspect Ratio\")}: ${\"default\"===a?i.get(\"Default\"):a}`,e.emit(\"aspectRatio\",a)}}),o.def(e,\"aspectRatioReset\",{set(t){if(t){const{aspectRatio:t}=e;e.aspectRatio=t}}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],bop8O:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{option:t,notice:r,template:{$video:i}}=e,n=document.createElement(\"canvas\");o.def(e,\"getDataURL\",{value:()=>new Promise(((e,t)=>{try{n.width=i.videoWidth,n.height=i.videoHeight,n.getContext(\"2d\").drawImage(i,0,0),e(n.toDataURL(\"image/png\"))}catch(e){r.show=e,t(e)}}))}),o.def(e,\"getBlobUrl\",{value:()=>new Promise(((e,t)=>{try{n.width=i.videoWidth,n.height=i.videoHeight,n.getContext(\"2d\").drawImage(i,0,0),n.toBlob((t=>{e(URL.createObjectURL(t))}))}catch(e){r.show=e,t(e)}}))}),o.def(e,\"screenshot\",{value:async()=>{const r=await e.getDataURL();return o.download(r,`${t.title||\"artplayer\"}_${o.secondToTime(i.currentTime)}.png`),e.emit(\"screenshot\",r),r}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],i63VK:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"../libs/screenfull\"),n=o.interopDefault(i),a=e(\"../utils\");r.default=function(e){const{i18n:t,notice:r,template:{$video:o,$player:i}}=e,s=n.default();e.once(\"video:loadedmetadata\",(()=>{var n;s.isEnabled?(n=e,s.on(\"change\",(()=>n.emit(\"fullscreen\",s.isFullscreen))),a.def(n,\"fullscreen\",{get:()=>s.isFullscreen,async set(e){e?(n.normalSize=\"fullscreen\",n.aspectRatioReset=!0,n.autoSize=!1,await s.request(i),a.addClass(i,\"art-fullscreen\"),n.emit(\"resize\"),n.emit(\"fullscreen\",!0),r.show=\"\"):(n.aspectRatioReset=!0,n.autoSize=n.option.autoSize,await s.exit(),a.removeClass(i,\"art-fullscreen\"),n.emit(\"resize\"),n.emit(\"fullscreen\"),r.show=\"\")}})):document.fullscreenEnabled||o.webkitSupportsFullscreen?(e=>{a.def(e,\"fullscreen\",{get:()=>o.webkitDisplayingFullscreen,set(t){t?(e.normalSize=\"fullscreen\",o.webkitEnterFullscreen(),e.emit(\"fullscreen\",!0),r.show=\"\"):(o.webkitExitFullscreen(),e.emit(\"fullscreen\"),r.show=\"\")}})})(e):a.def(e,\"fullscreen\",{get:()=>!1,set(){r.show=t.get(\"Fullscreen Not Supported\")}}),a.def(e,\"fullscreen\",a.get(e,\"fullscreen\"))}))}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\",\"../libs/screenfull\":\"aPwar\"}],aPwar:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r),r.default=function(){const e=[[\"requestFullscreen\",\"exitFullscreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fullscreenchange\",\"fullscreenerror\"],[\"webkitRequestFullscreen\",\"webkitExitFullscreen\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"webkitRequestFullScreen\",\"webkitCancelFullScreen\",\"webkitCurrentFullScreenElement\",\"webkitCancelFullScreen\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"mozRequestFullScreen\",\"mozCancelFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozfullscreenchange\",\"mozfullscreenerror\"],[\"msRequestFullscreen\",\"msExitFullscreen\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"MSFullscreenChange\",\"MSFullscreenError\"]],t=(()=>{const t=e[0],r={};for(const o of e){if(o[1]in document){for(const[e,i]of o.entries())r[t[e]]=i;return r}}return!1})(),r={change:t.fullscreenchange,error:t.fullscreenerror};let o={request:(e=document.documentElement,r)=>new Promise(((i,n)=>{const a=()=>{o.off(\"change\",a),i()};o.on(\"change\",a);const s=e[t.requestFullscreen](r);s instanceof Promise&&s.then(a).catch(n)})),exit:()=>new Promise(((e,r)=>{if(!o.isFullscreen)return void e();const i=()=>{o.off(\"change\",i),e()};o.on(\"change\",i);const n=document[t.exitFullscreen]();n instanceof Promise&&n.then(i).catch(r)})),toggle:(e,t)=>o.isFullscreen?o.exit():o.request(e,t),onchange(e){o.on(\"change\",e)},onerror(e){o.on(\"error\",e)},on(e,t){const o=r[e];o&&document.addEventListener(o,t,!1)},off(e,t){const o=r[e];o&&document.removeEventListener(o,t,!1)},raw:t};return Object.defineProperties(o,{isFullscreen:{get:()=>Boolean(document[t.fullscreenElement])},element:{enumerable:!0,get:()=>document[t.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>Boolean(document[t.fullscreenEnabled])}}),t||(o={isEnabled:!1}),o}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],bEKHA:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{notice:t,template:{$player:r}}=e;o.def(e,\"fullscreenWeb\",{get:()=>o.hasClass(r,\"art-fullscreen-web\"),set(i){i?(e.normalSize=\"fullscreenWeb\",o.addClass(r,\"art-fullscreen-web\"),e.aspectRatioReset=!0,e.autoSize=!1,e.emit(\"resize\"),e.emit(\"fullscreenWeb\",!0),t.show=\"\"):(o.removeClass(r,\"art-fullscreen-web\"),e.aspectRatioReset=!0,e.autoSize=e.option.autoSize,e.emit(\"resize\"),e.emit(\"fullscreenWeb\"),t.show=\"\")}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],ibIuh:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{i18n:t,notice:r,template:{$video:i}}=e;document.pictureInPictureEnabled?function(e){const{template:{$video:t},events:{proxy:r},notice:i}=e;t.disablePictureInPicture=!1,o.def(e,\"pip\",{get:()=>document.pictureInPictureElement,set(r){r?(e.normalSize=\"pip\",t.requestPictureInPicture().catch((e=>{throw i.show=e,e}))):document.exitPictureInPicture().catch((e=>{throw i.show=e,e}))}}),r(t,\"enterpictureinpicture\",(()=>{e.emit(\"pip\",!0)})),r(t,\"leavepictureinpicture\",(()=>{e.emit(\"pip\")}))}(e):i.webkitSupportsPresentationMode?function(e){const{$video:t}=e.template;t.webkitSetPresentationMode(\"inline\"),o.def(e,\"pip\",{get:()=>\"picture-in-picture\"===t.webkitPresentationMode,set(r){r?(e.normalSize=\"pip\",t.webkitSetPresentationMode(\"picture-in-picture\"),e.emit(\"pip\",!0)):(t.webkitSetPresentationMode(\"inline\"),e.emit(\"pip\"))}})}(e):o.def(e,\"pip\",{get:()=>!1,set(){r.show=t.get(\"PIP Not Supported\")}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],kwpxq:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{$video:t}=e.template;o.def(e,\"loaded\",{get:()=>e.loadedTime/t.duration}),o.def(e,\"loadedTime\",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],e4Iws:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){o.def(e,\"played\",{get:()=>e.currentTime/e.duration})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],fueZP:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{$video:t}=e.template;o.def(e,\"playing\",{get:()=>!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],l6TMg:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{$container:t,$player:r,$video:i}=e.template;o.def(e,\"autoSize\",{get:()=>o.hasClass(t,\"art-auto-size\"),set(n){if(n){const{videoWidth:n,videoHeight:a}=i,{width:s,height:l}=t.getBoundingClientRect(),c=n/a,p=s/l;if(o.addClass(t,\"art-auto-size\"),p>c){const e=l*c/s*100;o.setStyle(r,\"width\",`${e}%`),o.setStyle(r,\"height\",\"100%\")}else{const e=s/c/l*100;o.setStyle(r,\"width\",\"100%\"),o.setStyle(r,\"height\",`${e}%`)}e.emit(\"autoSize\",{width:e.width,height:e.height})}else o.removeClass(t,\"art-auto-size\"),o.setStyle(r,\"width\",null),o.setStyle(r,\"height\",null),e.emit(\"autoSize\")}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"6URTt\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){o.def(e,\"rect\",{get:()=>e.template.$player.getBoundingClientRect()});const t=[\"bottom\",\"height\",\"left\",\"right\",\"top\",\"width\"];for(let r=0;re.rect[i]})}o.def(e,\"x\",{get:()=>e.left+window.pageXOffset}),o.def(e,\"y\",{get:()=>e.top+window.pageYOffset})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],joth7:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{template:{$player:t},i18n:r,notice:i}=e;o.def(e,\"flip\",{get:()=>t.dataset.flip||\"normal\",set(n){n||(n=\"normal\");const a=[\"normal\",\"horizontal\",\"vertical\"];o.errorHandle(a.includes(n),`'flip' only accept ${a.toString()} as parameters`),\"normal\"===n?delete t.dataset.flip:(e.rotate=!1,t.dataset.flip=n);const s=n.replace(n[0],n[0].toUpperCase());i.show=`${r.get(\"Video Flip\")}: ${r.get(s)}`,e.emit(\"flip\",n)}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],durkk:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{i18n:t,option:r,storage:i,events:{proxy:n},template:{$player:a,$miniClose:s,$miniTitle:l,$miniHeader:c}}=e;let p=\"\",u=!1,d=0,f=0,h=0,m=0;n(c,\"mousedown\",(t=>{u=!0,d=t.pageX,f=t.pageY,h=e.left,m=e.top})),n(document,\"mousemove\",(e=>{if(u){o.addClass(a,\"art-is-dragging\");const t=m+e.pageY-f,r=h+e.pageX-d;o.setStyle(a,\"top\",`${t}px`),o.setStyle(a,\"left\",`${r}px`),i.set(\"top\",t),i.set(\"left\",r)}})),n(document,\"mouseup\",(()=>{u=!1,o.removeClass(a,\"art-is-dragging\")})),n(s,\"click\",(()=>{e.mini=!1,u=!1,o.removeClass(a,\"art-is-dragging\")})),o.append(l,r.title||t.get(\"Mini Player\")),o.def(e,\"mini\",{get:()=>o.hasClass(a,\"art-mini\"),set(t){if(t){e.normalSize=\"mini\",e.autoSize=!1,p=a.style.cssText,o.addClass(a,\"art-mini\");const t=i.get(\"top\"),r=i.get(\"left\");if(t&&r)o.setStyle(a,\"top\",`${t}px`),o.setStyle(a,\"left\",`${r}px`),o.isInViewport(c)||(i.del(\"top\"),i.del(\"left\"),e.mini=!0);else{const t=document.body,r=t.clientHeight-e.height-50,n=t.clientWidth-e.width-50;i.set(\"top\",r),i.set(\"left\",n),o.setStyle(a,\"top\",`${r}px`),o.setStyle(a,\"left\",`${n}px`)}e.aspectRatio=!1,e.playbackRate=!1,e.notice.show=\"\",e.emit(\"mini\",!0)}else a.style.cssText=p,o.removeClass(a,\"art-mini\"),o.setStyle(a,\"top\",null),o.setStyle(a,\"left\",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=r.autoSize,e.notice.show=\"\",e.emit(\"mini\")}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"5EZwI\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){let t=[];o.def(e,\"loop\",{get:()=>t,set:r=>{if(Array.isArray(r)&&\"number\"==typeof r[0]&&\"number\"==typeof r[1]){const i=o.clamp(r[0],0,Math.min(r[1],e.duration)),n=o.clamp(r[1],i,e.duration);n-i>=1?(t=[i,n],e.emit(\"loop\",t)):(t=[],e.emit(\"loop\"))}else t=[],e.emit(\"loop\")}}),e.on(\"video:timeupdate\",(()=>{t.length&&(e.currentTimet[1])&&(e.seek=t[0])}))}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"22WMt\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{option:t,template:{$poster:r}}=e;o.def(e,\"poster\",{get:()=>t.poster,set(e){t.poster=e,o.setStyle(r,\"backgroundImage\",`url(${e})`)}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"8pdNr\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{option:t,template:{$container:r,$video:i}}=e,n=r.style.height;o.def(e,\"autoHeight\",{get:()=>o.hasClass(r,\"art-auto-height\"),set(a){if(a){const{clientWidth:n}=r,{videoHeight:a,videoWidth:s}=i,l=a*(n/s);o.setStyle(r,\"height\",l+\"px\"),o.addClass(r,\"art-auto-height\"),e.autoSize=t.autoSize,e.emit(\"autoHeight\",l)}else o.setStyle(r,\"height\",n),o.removeClass(r,\"art-auto-height\"),e.autoSize=t.autoSize,e.emit(\"autoHeight\")}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],eADqm:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{option:t,template:{$player:r}}=e;o.def(e,\"theme\",{get:()=>getComputedStyle(r).getPropertyValue(\"--theme\"),set(e){t.theme=e,r.style.setProperty(\"--theme\",e)}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"8T9U6\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){o.def(e,\"title\",{get:()=>e.option.title,set(t){e.option.title=t}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"8CMLG\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{clamp:t}=e.constructor.utils,{notice:r,template:i,i18n:n}=e;let a=0,s=[];e.on(\"subtitle:switch\",(()=>{s=[]})),o.def(e,\"subtitleOffset\",{get:()=>a,set(o){if(i.$track&&i.$track.track){const l=Array.from(i.$track.track.cues);a=t(o,-5,5);for(let r=0;r{e.attr(r,t.moreVideoAttr[r])})),t.muted&&(e.muted=t.muted),t.volume&&(i.volume=o.clamp(t.volume,0,1));const a=r.get(\"volume\");\"number\"==typeof a&&(i.volume=o.clamp(a,0,1)),t.poster&&o.setStyle(n,\"backgroundImage\",`url(${t.poster})`),t.autoplay&&(i.autoplay=t.autoplay),t.playsInline&&(i.playsInline=!0,i[\"webkit-playsinline\"]=!0),t.theme&&(e.theme=t.theme),0===t.ads.length&&(e.url=t.url)}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"59ETf\":[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"../config\"),n=o.interopDefault(i),a=e(\"../utils\");r.default=function(e){const{i18n:t,notice:r,option:o,constructor:i,events:{proxy:s},template:{$player:l,$video:c,$poster:p}}=e;let u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)}));e.on(\"video:canplay\",(()=>{u=0,e.loading.show=!1})),e.once(\"video:canplay\",(()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit(\"ready\")})),e.on(\"video:ended\",(()=>{o.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)})),e.on(\"video:error\",(async()=>{u{e.autoSize=o.autoSize,a.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)})),e.on(\"video:loadstart\",(()=>{e.loading.show=!0})),e.on(\"video:pause\",(()=>{e.controls.show=!0,e.mask.show=!0})),e.on(\"video:play\",(()=>{e.mask.show=!1,a.setStyle(p,\"display\",\"none\")})),e.on(\"video:playing\",(()=>{e.mask.show=!1})),e.on(\"video:seeked\",(()=>{e.loading.show=!1})),e.on(\"video:seeking\",(()=>{e.loading.show=!0})),e.on(\"video:timeupdate\",(()=>{e.mask.show=!1})),e.on(\"video:waiting\",(()=>{e.loading.show=!0}))}},{\"../config\":\"eksZR\",\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],iEQHG:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const t=[\"mini\",\"pip\",\"fullscreen\",\"fullscreenWeb\"];o.def(e,\"normalSize\",{get:()=>t.every((t=>!e[t])),set(r){t.filter((e=>e!==r)).forEach((t=>{e[t]&&(e[t]=!1)}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],kJ9J9:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"../utils\"),n=e(\"../utils/component\"),a=o.interopDefault(n),s=e(\"./fullscreen\"),l=o.interopDefault(s),c=e(\"./fullscreenWeb\"),p=o.interopDefault(c),u=e(\"./pip\"),d=o.interopDefault(u),f=e(\"./playAndPause\"),h=o.interopDefault(f),m=e(\"./progress\"),g=o.interopDefault(m),v=e(\"./subtitle\"),y=o.interopDefault(v),b=e(\"./time\"),x=o.interopDefault(b),w=e(\"./volume\"),j=o.interopDefault(w),k=e(\"./setting\"),S=o.interopDefault(k),I=e(\"./thumbnails\"),R=o.interopDefault(I),$=e(\"./screenshot\"),O=o.interopDefault($),M=e(\"./quality\"),T=o.interopDefault(M),E=e(\"./loop\"),F=o.interopDefault(E);class C extends a.default{constructor(e){super(e),this.name=\"control\";const{option:t,constructor:r,events:{proxy:o},template:{$player:n}}=e;let a=Date.now();o(n,[\"click\",\"mousemove\",\"touchstart\",\"touchmove\"],(()=>{this.show=!0,i.removeClass(n,\"art-hide-cursor\"),i.addClass(n,\"art-hover\"),a=Date.now()})),e.on(\"video:timeupdate\",(()=>{e.playing&&this.show&&Date.now()-a>=r.CONTROL_HIDE_TIME&&(this.show=!1,i.addClass(n,\"art-hide-cursor\"),i.removeClass(n,\"art-hover\"))})),e.once(\"video:loadedmetadata\",(()=>{this.add(g.default({name:\"progress\",disable:t.isLive,position:\"top\",index:10})),this.add(R.default({name:\"thumbnails\",disable:!t.thumbnails.url||t.isLive||i.isMobile,position:\"top\",index:20})),this.add(F.default({name:\"loop\",disable:!1,position:\"top\",index:30})),this.add(h.default({name:\"playAndPause\",disable:!1,position:\"left\",index:10})),this.add(j.default({name:\"volume\",disable:!1,position:\"left\",index:20})),this.add(x.default({name:\"time\",disable:t.isLive,position:\"left\",index:30})),this.add(T.default({name:\"quality\",disable:0===t.quality.length,position:\"right\",index:10})),this.add(O.default({name:\"screenshot\",disable:!t.screenshot||i.isMobile,position:\"right\",index:20})),this.add(y.default({name:\"subtitle\",disable:!t.subtitle.url,position:\"right\",index:30})),this.add(S.default({name:\"setting\",disable:!t.setting,position:\"right\",index:40})),this.add(d.default({name:\"pip\",disable:!t.pip,position:\"right\",index:50})),this.add(p.default({name:\"fullscreenWeb\",disable:!t.fullscreenWeb,position:\"right\",index:60})),this.add(l.default({name:\"fullscreen\",disable:!t.fullscreen,position:\"right\",index:70}));for(let e=0;eNumber(e.dataset.index)>=Number(o.dataset.index)));return p?p.insertAdjacentElement(\"beforebegin\",o):i.append(this.$parent,o),t.html&&i.append(o,t.html),t.style&&i.setStyles(o,t.style),t.tooltip&&i.tooltip(o,t.tooltip),t.click&&this.art.events.proxy(o,\"click\",(e=>{e.preventDefault(),t.click.call(this.art,this,e)})),t.selector&&[\"left\",\"right\"].includes(t.position)&&this.selector(t,o),t.mounted&&t.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&i.addClass(o,\"art-control-onlyText\"),l.def(this,r,{value:o}),o}selector(e,t){const{hover:r,proxy:o}=this.art.events;i.addClass(t,\"art-control-selector\");const n=document.createElement(\"div\");i.addClass(n,\"art-selector-value\"),i.append(n,e.html),t.innerText=\"\",i.append(t,n);const a=e.selector.map(((e,t)=>`
${e.html}
`)).join(\"\"),s=document.createElement(\"div\");i.addClass(s,\"art-selector-list\"),i.append(s,a),i.append(t,s);const l=()=>{const e=i.getStyle(t,\"width\")/2-i.getStyle(s,\"width\")/2;s.style.left=`${e}px`};r(t,l),o(s,\"click\",(async t=>{const r=(t.composedPath()||[]).find((e=>i.hasClass(e,\"art-selector-item\")));if(!r)return;i.inverseClass(r,\"art-current\");const o=Number(r.dataset.index),a=e.selector[o]||{};if(n.innerText=r.innerText,e.onSelect){const o=await e.onSelect.call(this.art,a,r,t);\"string\"!=typeof o&&\"number\"!=typeof o||(n.innerHTML=o)}l(),this.art.emit(\"selector\",a,r)}))}}},{\"./dom\":\"ff6Hs\",\"option-validator\":\"hqjoJ\",\"../scheme\":\"3vPoh\",\"./property\":\"lMM6V\",\"./error\":\"lDQPM\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],awkUw:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,tooltip:t.i18n.get(\"Fullscreen\"),mounted:e=>{const{events:{proxy:r},icons:i,i18n:n}=t,a=o.append(e,i.fullscreenOn),s=o.append(e,i.fullscreenOff);o.setStyle(s,\"display\",\"none\"),r(e,\"click\",(()=>{t.fullscreen=!t.fullscreen})),t.on(\"fullscreen\",(t=>{t?(o.tooltip(e,n.get(\"Exit Fullscreen\")),o.setStyle(a,\"display\",\"none\"),o.setStyle(s,\"display\",\"inline-flex\")):(o.tooltip(e,n.get(\"Fullscreen\")),o.setStyle(a,\"display\",\"inline-flex\"),o.setStyle(s,\"display\",\"none\"))}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"3qoPe\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,tooltip:t.i18n.get(\"Web Fullscreen\"),mounted:e=>{const{events:{proxy:r},icons:i,i18n:n}=t,a=o.append(e,i.fullscreenWebOn),s=o.append(e,i.fullscreenWebOff);o.setStyle(s,\"display\",\"none\"),r(e,\"click\",(()=>{t.fullscreenWeb=!t.fullscreenWeb})),t.on(\"fullscreenWeb\",(t=>{t?(o.tooltip(e,n.get(\"Exit Web Fullscreen\")),o.setStyle(a,\"display\",\"none\"),o.setStyle(s,\"display\",\"inline-flex\")):(o.tooltip(e,n.get(\"Web Fullscreen\")),o.setStyle(a,\"display\",\"inline-flex\"),o.setStyle(s,\"display\",\"none\"))}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],lFHYL:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,tooltip:t.i18n.get(\"PIP Mode\"),mounted:e=>{const{events:{proxy:r},icons:i,i18n:n}=t;o.append(e,i.pip),r(e,\"click\",(()=>{t.pip=!t.pip})),t.on(\"pip\",(t=>{o.tooltip(e,n.get(t?\"Exit PIP Mode\":\"PIP Mode\"))}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],b8vU1:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,mounted:e=>{const{events:{proxy:r},icons:i,i18n:n}=t,a=o.append(e,i.play),s=o.append(e,i.pause);function l(){o.setStyle(a,\"display\",\"flex\"),o.setStyle(s,\"display\",\"none\")}function c(){o.setStyle(a,\"display\",\"none\"),o.setStyle(s,\"display\",\"flex\")}o.tooltip(a,n.get(\"Play\")),o.tooltip(s,n.get(\"Pause\")),r(a,\"click\",(()=>{t.play()})),r(s,\"click\",(()=>{t.pause()})),t.playing?c():l(),t.on(\"video:playing\",(()=>{c()})),t.on(\"video:pause\",(()=>{l()}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],dRwzT:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r),o.export(r,\"getPosFromEvent\",(()=>n));var i=e(\"../utils\");function n(e,t){const{$progress:r}=e.template,{left:o}=r.getBoundingClientRect(),n=t.pageX,a=i.clamp(n-o,0,r.clientWidth),s=a/r.clientWidth*e.duration;return{second:s,time:i.secondToTime(s),width:a,percentage:i.clamp(a/r.clientWidth,0,1)}}r.default=function(e){return t=>{const{icons:r,option:o,events:{proxy:a}}=t;return{...e,html:'
',mounted:e=>{let s=!1;const l=i.query(\".art-progress-loaded\",e),c=i.query(\".art-progress-played\",e),p=i.query(\".art-progress-highlight\",e),u=i.query(\".art-progress-indicator\",e),d=i.query(\".art-progress-tip\",e);i.setStyle(c,\"backgroundColor\",\"var(--theme)\");let f=t.constructor.INDICATOR_SIZE;function h(e,t){\"loaded\"===e&&i.setStyle(l,\"width\",100*t+\"%\"),\"played\"===e&&(i.setStyle(c,\"width\",100*t+\"%\"),i.setStyle(u,\"left\",`calc(${100*t}% - ${f/2}px)`))}r.indicator?(f=t.constructor.INDICATOR_SIZE_ICON,i.append(u,r.indicator)):i.setStyles(u,{backgroundColor:\"var(--theme)\"}),i.isMobile&&(f=t.constructor.INDICATOR_SIZE_MOBILE,r.indicator&&(f=t.constructor.INDICATOR_SIZE_MOBILE_ICON)),i.setStyles(u,{left:`-${f/2}px`,width:`${f}px`,height:`${f}px`});for(let e=0;e`)}h(\"loaded\",t.loaded),t.on(\"setBar\",((e,t)=>{h(e,t)})),t.on(\"video:progress\",(()=>{h(\"loaded\",t.loaded)})),t.on(\"video:timeupdate\",(()=>{h(\"played\",t.played)})),t.on(\"video:ended\",(()=>{h(\"played\",1)})),i.isMobile||(a(e,\"click\",(e=>{if(e.target!==u){const{second:r,percentage:o}=n(t,e);h(\"played\",o),t.seek=r}})),a(e,\"mousemove\",(r=>{i.setStyle(d,\"display\",\"block\"),i.includeFromEvent(r,p)?function(r){const{width:o}=n(t,r),{text:a}=r.target.dataset;d.innerHTML=a;const s=d.clientWidth;o<=s/2?i.setStyle(d,\"left\",0):o>e.clientWidth-s/2?i.setStyle(d,\"left\",e.clientWidth-s+\"px\"):i.setStyle(d,\"left\",o-s/2+\"px\")}(r):function(r){const{width:o,time:a}=n(t,r);d.innerHTML=a;const s=d.clientWidth;o<=s/2?i.setStyle(d,\"left\",0):o>e.clientWidth-s/2?i.setStyle(d,\"left\",e.clientWidth-s+\"px\"):i.setStyle(d,\"left\",o-s/2+\"px\")}(r)})),a(e,\"mouseout\",(()=>{i.setStyle(d,\"display\",\"none\")})),a(u,\"mousedown\",(()=>{s=!0})),a(document,\"mousemove\",(e=>{if(s){const{second:r,percentage:o}=n(t,e);h(\"played\",o),t.seek=r}})),a(document,\"mouseup\",(()=>{s&&(s=!1)})))}}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"3kkJ1\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,tooltip:t.i18n.get(\"Hide Subtitle\"),mounted:e=>{const{events:{proxy:r},icons:i,i18n:n,subtitle:a}=t;o.append(e,i.subtitle),r(e,\"click\",(()=>{a.toggle=!0})),t.on(\"subtitle\",(t=>{o.tooltip(e,n.get(t?\"Hide Subtitle\":\"Show Subtitle\"))}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],ltYI1:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,style:{cursor:\"auto\"},mounted:e=>{function r(){const r=`${o.secondToTime(t.currentTime)} / ${o.secondToTime(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();const i=[\"video:loadedmetadata\",\"video:timeupdate\",\"video:progress\"];for(let e=0;e({...e,mounted:e=>{const{events:{proxy:r},icons:i,i18n:n}=t;let a=!1;const s=t.constructor.VOLUME_PANEL_WIDTH,l=t.constructor.VOLUME_HANDLE_WIDTH,c=o.append(e,i.volume),p=o.append(e,i.volumeClose),u=o.append(e,'
'),d=o.append(u,'
');function f(e){const{left:t}=u.getBoundingClientRect();return o.clamp(e.pageX-t-l/2,0,s-l/2)/(s-l)}function h(e=.7){if(t.muted||0===e)o.setStyle(c,\"display\",\"none\"),o.setStyle(p,\"display\",\"flex\"),o.setStyle(d,\"left\",\"0\");else{const t=(s-l)*e;o.setStyle(c,\"display\",\"flex\"),o.setStyle(p,\"display\",\"none\"),o.setStyle(d,\"left\",`${t}px`)}}o.tooltip(c,n.get(\"Mute\")),o.setStyle(p,\"display\",\"none\"),o.isMobile&&o.setStyle(u,\"display\",\"none\"),h(t.volume),t.on(\"video:volumechange\",(()=>{h(t.volume)})),r(c,\"click\",(()=>{t.muted=!0})),r(p,\"click\",(()=>{t.muted=!1})),r(u,\"click\",(e=>{t.muted=!1,t.volume=f(e)})),r(d,\"mousedown\",(()=>{a=!0})),r(e,\"mousemove\",(e=>{a&&(t.muted=!1,t.volume=f(e))})),r(document,\"mouseup\",(()=>{a&&(a=!1)}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],lX5UX:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,tooltip:t.i18n.get(\"Show Setting\"),mounted:e=>{const{events:{proxy:r},icons:i,i18n:n,setting:a}=t;o.append(e,i.setting),r(e,\"click\",(()=>{a.toggle=!0})),t.on(\"setting\",(t=>{o.tooltip(e,n.get(t?\"Hide Setting\":\"Show Setting\"))}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],lUoGG:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\"),i=e(\"./progress\");r.default=function(e){return t=>({...e,mounted:e=>{const{option:r,template:{$progress:n,$video:a},events:{proxy:s,loadImg:l}}=t;let c=null,p=!1,u=!1;s(n,\"mousemove\",(async s=>{if(!p){p=!0;const e=await l(r.thumbnails.url);c=e,u=!0}u&&(o.setStyle(e,\"display\",\"block\"),function(s){const{width:l}=i.getPosFromEvent(t,s),{url:p,number:u,column:d}=r.thumbnails,f=c.naturalWidth/d,h=f/(a.videoWidth/a.videoHeight),m=n.clientWidth/u,g=Math.floor(l/m),v=Math.ceil(g/d)-1,y=g%d||d-1;o.setStyle(e,\"backgroundImage\",`url(${p})`),o.setStyle(e,\"height\",`${h}px`),o.setStyle(e,\"width\",`${f}px`),o.setStyle(e,\"backgroundPosition\",`-${y*f}px -${v*h}px`),l<=f/2?o.setStyle(e,\"left\",0):l>n.clientWidth-f/2?o.setStyle(e,\"left\",n.clientWidth-f+\"px\"):o.setStyle(e,\"left\",l-f/2+\"px\")}(s))})),s(n,\"mouseout\",(()=>{o.setStyle(e,\"display\",\"none\")}))}})}},{\"../utils\":\"geSvU\",\"./progress\":\"dRwzT\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],jvdQ0:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,tooltip:t.i18n.get(\"Screenshot\"),mounted:e=>{const{events:{proxy:r},icons:i}=t;o.append(e,i.screenshot),r(e,\"click\",(()=>{t.screenshot()}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],k9pKK:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r),r.default=function(e){return t=>{const r=t.option.quality,o=r.find((e=>e.default))||r[0];return{...e,html:o?o.html:\"\",selector:r,onSelect(e){t.switchQuality(e.url,e.html)}}}}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],aE690:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>({...e,mounted:e=>{const r=o.append(e,''),i=o.append(e,'');t.on(\"loop\",(n=>{n?(o.setStyle(e,\"display\",\"block\"),o.setStyle(r,\"left\",`calc(${n[0]/t.duration*100}% - ${r.clientWidth}px)`),o.setStyle(i,\"left\",n[1]/t.duration*100+\"%\")):o.setStyle(e,\"display\",\"none\")}))}})}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"7rh9q\":[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"../utils\"),n=e(\"../utils/component\"),a=o.interopDefault(n),s=e(\"./playbackRate\"),l=o.interopDefault(s),c=e(\"./aspectRatio\"),p=o.interopDefault(c),u=e(\"./flip\"),d=o.interopDefault(u),f=e(\"./info\"),h=o.interopDefault(f),m=e(\"./version\"),g=o.interopDefault(m),v=e(\"./close\"),y=o.interopDefault(v);class b extends a.default{constructor(e){super(e),this.art=e,this.name=\"contextmenu\",this.$parent=e.template.$contextmenu,e.once(\"video:loadedmetadata\",(()=>{i.isMobile||this.init()}))}init(){const{option:e,template:{$player:t,$contextmenu:r},events:{proxy:o}}=this.art;this.add(l.default({disable:!e.playbackRate,name:\"playbackRate\",index:10})),this.add(p.default({disable:!e.aspectRatio,name:\"aspectRatio\",index:20})),this.add(d.default({disable:!e.flip,name:\"flip\",index:30})),this.add(h.default({disable:!1,name:\"info\",index:40})),this.add(g.default({disable:!1,name:\"version\",index:50})),this.add(y.default({disable:!1,name:\"close\",index:60}));for(let t=0;t{e.preventDefault(),this.show=!0;const o=e.clientX,n=e.clientY,{height:a,width:s,left:l,top:c}=t.getBoundingClientRect(),{height:p,width:u}=r.getBoundingClientRect();let d=o-l,f=n-c;o+u>l+s&&(d=s-u),n+p>c+a&&(f=a-p),i.setStyles(r,{top:`${f}px`,left:`${d}px`})})),o(t,\"click\",(e=>{i.includeFromEvent(e,r)||(this.show=!1)})),this.art.on(\"blur\",(()=>{this.show=!1}))}}r.default=b},{\"../utils\":\"geSvU\",\"../utils/component\":\"kPHYl\",\"./playbackRate\":\"9P3rd\",\"./aspectRatio\":\"3OqVf\",\"./flip\":\"iMg4Y\",\"./info\":\"9FFXO\",\"./version\":\"duhqU\",\"./close\":\"k3lJQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"9P3rd\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get(\"Play Speed\")}:0.50.75${r.get(\"Normal\")}1.251.52.0`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.playbackRate=Number(o),e.show=!1)},mounted:e=>{t.on(\"playbackRate\",(t=>{const r=o.queryAll(\"span\",e).find((e=>Number(e.dataset.value)===t));r&&o.inverseClass(r,\"art-current\")}))}}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"3OqVf\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get(\"Aspect Ratio\")}:${r.get(\"Default\")}4:316:9`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.aspectRatio=o,e.show=!1)},mounted:e=>{t.on(\"aspectRatio\",(t=>{const r=o.queryAll(\"span\",e).find((e=>e.dataset.value===t));r&&o.inverseClass(r,\"art-current\")}))}}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],iMg4Y:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){return t=>{const{i18n:r}=t;return{...e,html:`${r.get(\"Video Flip\")}:${r.get(\"Normal\")}${r.get(\"Horizontal\")}${r.get(\"Vertical\")}`,click:(e,r)=>{const{value:o}=r.target.dataset;o&&(t.flip=o,e.show=!1)},mounted:e=>{t.on(\"flip\",(t=>{const r=o.queryAll(\"span\",e).find((e=>e.dataset.value===t));r&&o.inverseClass(r,\"art-current\")}))}}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"9FFXO\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get(\"Video Info\"),click:e=>{t.info.show=!0,e.show=!1}})}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],duhqU:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r),r.default=function(e){return{...e,html:'ArtPlayer 4.3.23'}}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],k3lJQ:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r),r.default=function(e){return t=>({...e,html:t.i18n.get(\"Close\"),click:e=>{e.show=!1}})}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],c896w:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"./utils\"),n=e(\"./utils/component\"),a=o.interopDefault(n);class s extends a.default{constructor(e){super(e),this.name=\"info\",e.once(\"video:loadedmetadata\",(()=>{i.isMobile||this.init()}))}init(){const{constructor:e,events:{proxy:t},template:{$infoPanel:r,$infoClose:o,$video:n}}=this.art;t(o,\"click\",(()=>{this.show=!1}));let a=null;const s=i.queryAll(\"[data-video]\",r)||[];this.art.on(\"destroy\",(()=>{clearTimeout(a)})),function t(){for(let e=0;e{this.init(e.option.subtitle)}))}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video.textTracks[0]}get activeCue(){return this.textTrack.activeCues[0]}style(e,t){const{$subtitle:r}=this.art.template;return\"object\"==typeof e?i.setStyles(r,e):i.setStyle(r,e,t)}update(){const{$subtitle:e}=this.art.template;e.innerHTML=\"\",this.activeCue&&(e.innerHTML=this.activeCue.text.split(/\\r?\\n/).map((e=>`

${i.escape(e)}

`)).join(\"\"),this.art.emit(\"subtitleUpdate\",this.activeCue.text))}async switch(e,t={}){const{i18n:r,notice:o,option:i}=this.art,n={...i.subtitle,...t,url:e},a=await this.init(n);return t.name&&(o.show=`${r.get(\"Switch Subtitle\")}: ${t.name}`),a}init(e){if(l.default(e,p.default.subtitle),!e.url)return;const{notice:t,events:{proxy:r},template:{$subtitle:o,$video:n,$track:a}}=this.art;if(!a){const e=document.createElement(\"track\");e.default=!0,e.kind=\"metadata\",n.appendChild(e),this.art.template.$track=e,r(this.textTrack,\"cuechange\",this.update.bind(this))}return this.style(e.style),i.errorHandle(window.fetch,\"fetch not support\"),fetch(e.url).then((e=>e.arrayBuffer())).then((t=>{i.errorHandle(window.TextDecoder,\"TextDecoder not support\");const r=new TextDecoder(e.encoding).decode(t);switch(this.art.emit(\"subtitleLoad\",e.url),e.type||i.getExt(e.url)){case\"srt\":return i.vttToBlob(i.srtToVtt(r));case\"ass\":return i.vttToBlob(i.assToVtt(r));case\"vtt\":return i.vttToBlob(r);default:return e.url}})).then((e=>(o.innerHTML=\"\",this.url===e||(URL.revokeObjectURL(this.url),this.art.template.$track.src=e,this.art.emit(\"subtitleSwitch\",e)),e))).catch((e=>{throw t.show=e,e}))}}r.default=u},{\"./utils\":\"geSvU\",\"./utils/component\":\"kPHYl\",\"option-validator\":\"hqjoJ\",\"./scheme\":\"3vPoh\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],j2hlX:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"../utils/error\"),n=e(\"./clickInit\"),a=o.interopDefault(n),s=e(\"./hoverInit\"),l=o.interopDefault(s),c=e(\"./mousemoveInit\"),p=o.interopDefault(c),u=e(\"./resizeInit\"),d=o.interopDefault(u),f=e(\"./gestureInit\"),h=o.interopDefault(f),m=e(\"./viewInit\"),g=o.interopDefault(m);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),e.whitelist.state&&e.once(\"video:loadedmetadata\",(()=>{a.default(e,this),l.default(e,this),p.default(e,this),d.default(e,this),h.default(e,this),g.default(e,this)}))}proxy(e,t,r,o={}){if(Array.isArray(t))return t.map((t=>this.proxy(e,t,r,o)));e.addEventListener(t,r,o);const i=()=>e.removeEventListener(t,r,o);return this.destroyEvents.push(i),i}hover(e,t,r){t&&this.proxy(e,\"mouseenter\",t),r&&this.proxy(e,\"mouseleave\",r)}loadImg(e){return new Promise(((t,r)=>{let o;if(e instanceof HTMLImageElement)o=e;else{if(\"string\"!=typeof e)return r(new i.ArtPlayerError(\"Unable to get Image\"));o=new Image,o.src=e}if(o.complete)return t(o);this.proxy(o,\"load\",(()=>t(o))),this.proxy(o,\"error\",(()=>r(new i.ArtPlayerError(`Failed to load Image: ${o.src}`))))}))}destroy(){for(let e=0;e{o.includeFromEvent(t,i)?(e.isFocus=!0,e.emit(\"focus\")):(e.isFocus=!1,e.emit(\"blur\"))}));let a=0;t.proxy(n,\"click\",(()=>{const t=Date.now();t-a<=r.DB_CLICE_TIME?(e.emit(\"dblclick\"),o.isMobile?e.toggle():e.fullscreen=!e.fullscreen):(e.emit(\"click\"),o.isMobile||e.toggle()),a=t}))}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],aoIIW:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e,t){const{$player:r}=e.template;t.hover(r,(()=>{o.addClass(r,\"art-hover\"),e.emit(\"hover\",!0)}),(()=>{o.removeClass(r,\"art-hover\"),e.emit(\"hover\")}))}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"4WC5c\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r),r.default=function(e,t){const{$player:r}=e.template;t.proxy(r,\"mousemove\",(t=>{e.emit(\"mousemove\",t)}))}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"7fpan\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e,t){const{notice:r,option:i}=e,n=o.throttle((()=>{e.normalSize&&(e.autoSize=i.autoSize),e.aspectRatioReset=!0,r.show=\"\",e.emit(\"resize\")}),e.constructor.RESIZE_TIME);t.proxy(window,[\"orientationchange\",\"resize\"],(()=>{n()})),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,\"change\",(()=>{n()}))}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],ixtiG:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e,t){if(o.isMobile&&!e.option.isLive){const{notice:r,plugins:i,template:{$video:n,$bottom:a,$controls:s}}=e;let l=!1,c=0,p=0,u=0;const d=t=>{if(1===t.touches.length){l=!0;const{clientX:r,clientY:o}=t.touches[0];c=r,p=o,u=e.currentTime}},f=t=>{if(1===t.touches.length&&l&&e.duration){const n=i.autoOrientation&&i.autoOrientation.state,{clientX:a,clientY:s}=t.touches[0],l=o.clamp((a-c)/e.width,-1,1),d=o.clamp((s-p)/e.height,-1,1),f=n?d:l,h=o.clamp(u+e.duration*f/2,0,e.duration);e.seek=h,e.emit(\"setBar\",\"played\",o.clamp(h/e.duration,0,1)),r.show=`${o.secondToTime(h)} / ${o.secondToTime(e.duration)}`}},h=()=>{l&&(c=0,p=0,u=0,l=!1)};t.proxy(a,\"touchstart\",(e=>{o.includeFromEvent(e,s)||d(e)})),t.proxy(a,\"touchmove\",f),t.proxy(n,\"touchstart\",d),t.proxy(n,\"touchmove\",f),t.proxy(document,\"touchend\",h)}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"5WvmH\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e,t){const{option:r,constructor:i,template:{$container:n}}=e,a=o.throttle((()=>{e.emit(\"view\",o.isInViewport(n,i.SCROLL_GAP))}),i.SCROLL_TIME);t.proxy(window,\"scroll\",(()=>{a()})),e.on(\"view\",(t=>{r.autoMini&&(e.mini=!t)}))}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],aTHWZ:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"./utils\");r.default=class{constructor(e){this.art=e,this.keys={},e.once(\"video:loadedmetadata\",(()=>{e.option.hotkey&&!o.isMobile&&this.init()}))}init(){const{proxy:e}=this.art.events;this.add(27,(()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)})),this.add(32,(()=>{this.art.toggle()})),this.add(37,(()=>{this.art.backward=5})),this.add(38,(()=>{this.art.volume+=.1})),this.add(39,(()=>{this.art.forward=5})),this.add(40,(()=>{this.art.volume-=.1})),e(window,\"keydown\",(e=>{if(this.art.isFocus){const t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute(\"contenteditable\");if(\"INPUT\"!==t&&\"TEXTAREA\"!==t&&\"\"!==r&&\"true\"!==r){const t=this.keys[e.keyCode];if(t){e.preventDefault();for(let r=0;r{for(let e=0;e{i.innerText=\"\",o.removeClass(r,\"art-notice-show\")}),t.NOTICE_TIME)):o.removeClass(r,\"art-notice-show\")}}},{\"./utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],iLfmB:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"./utils\"),n=e(\"./utils/component\"),a=o.interopDefault(n);class s extends a.default{constructor(e){super(e),this.name=\"mask\";const{template:t,icons:r,events:o}=e;i.append(t.$state,r.state),o.proxy(t.$state,\"click\",(()=>e.play()))}}r.default=s},{\"./utils\":\"geSvU\",\"./utils/component\":\"kPHYl\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"5lAmI\":[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"../utils\"),n=e(\"bundle-text:./loading.svg\"),a=o.interopDefault(n),s=e(\"bundle-text:./state.svg\"),l=o.interopDefault(s),c=e(\"bundle-text:./check.svg\"),p=o.interopDefault(c),u=e(\"bundle-text:./play.svg\"),d=o.interopDefault(u),f=e(\"bundle-text:./pause.svg\"),h=o.interopDefault(f),m=e(\"bundle-text:./volume.svg\"),g=o.interopDefault(m),v=e(\"bundle-text:./volume-close.svg\"),y=o.interopDefault(v),b=e(\"bundle-text:./subtitle.svg\"),x=o.interopDefault(b),w=e(\"bundle-text:./screenshot.svg\"),j=o.interopDefault(w),k=e(\"bundle-text:./setting.svg\"),S=o.interopDefault(k),I=e(\"bundle-text:./arrow-left.svg\"),R=o.interopDefault(I),$=e(\"bundle-text:./arrow-right.svg\"),O=o.interopDefault($),M=e(\"bundle-text:./playback-rate.svg\"),T=o.interopDefault(M),E=e(\"bundle-text:./aspect-ratio.svg\"),F=o.interopDefault(E),C=e(\"bundle-text:./config.svg\"),P=o.interopDefault(C),z=e(\"bundle-text:./pip.svg\"),D=o.interopDefault(z),H=e(\"bundle-text:./lock.svg\"),A=o.interopDefault(H),L=e(\"bundle-text:./unlock.svg\"),U=o.interopDefault(L),Z=e(\"bundle-text:./fullscreen-off.svg\"),_=o.interopDefault(Z),V=e(\"bundle-text:./fullscreen-on.svg\"),q=o.interopDefault(V),N=e(\"bundle-text:./fullscreen-web-off.svg\"),W=o.interopDefault(N),B=e(\"bundle-text:./fullscreen-web-on.svg\"),Y=o.interopDefault(B);r.default=class{constructor(e){const t={loading:a.default,state:l.default,play:d.default,pause:h.default,check:p.default,volume:g.default,volumeClose:y.default,subtitle:x.default,screenshot:j.default,setting:S.default,pip:D.default,arrowLeft:R.default,arrowRight:O.default,playbackRate:T.default,aspectRatio:F.default,config:P.default,lock:A.default,unlock:U.default,fullscreenOff:_.default,fullscreenOn:q.default,fullscreenWebOff:W.default,fullscreenWebOn:Y.default,...e.option.icons};Object.keys(t).forEach((e=>{i.def(this,e,{get:()=>{const r=document.createElement(\"i\");return i.addClass(r,\"art-icon\"),i.addClass(r,`art-icon-${e}`),i.append(r,t[e]),r}})}))}}},{\"../utils\":\"geSvU\",\"bundle-text:./loading.svg\":\"hX0lQ\",\"bundle-text:./state.svg\":\"01U3R\",\"bundle-text:./check.svg\":\"9jaCP\",\"bundle-text:./play.svg\":\"invok\",\"bundle-text:./pause.svg\":\"68285\",\"bundle-text:./volume.svg\":\"3zSKr\",\"bundle-text:./volume-close.svg\":\"ft8Zf\",\"bundle-text:./subtitle.svg\":\"8qaqV\",\"bundle-text:./screenshot.svg\":\"dfLel\",\"bundle-text:./setting.svg\":\"j8dnn\",\"bundle-text:./arrow-left.svg\":\"fMoi9\",\"bundle-text:./arrow-right.svg\":\"auIjA\",\"bundle-text:./playback-rate.svg\":\"g3V1U\",\"bundle-text:./aspect-ratio.svg\":\"3LQJt\",\"bundle-text:./config.svg\":\"bcTkc\",\"bundle-text:./pip.svg\":\"jDSoL\",\"bundle-text:./lock.svg\":\"jqFLt\",\"bundle-text:./unlock.svg\":\"5qYod\",\"bundle-text:./fullscreen-off.svg\":\"25MvP\",\"bundle-text:./fullscreen-on.svg\":\"6CCX4\",\"bundle-text:./fullscreen-web-off.svg\":\"m9TwS\",\"bundle-text:./fullscreen-web-on.svg\":\"iWJrW\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],hX0lQ:[function(e,t,r){t.exports=''},{}],\"01U3R\":[function(e,t,r){t.exports=''},{}],\"9jaCP\":[function(e,t,r){t.exports=''},{}],invok:[function(e,t,r){t.exports=''},{}],68285:[function(e,t,r){t.exports=''},{}],\"3zSKr\":[function(e,t,r){t.exports=''},{}],ft8Zf:[function(e,t,r){t.exports=''},{}],\"8qaqV\":[function(e,t,r){t.exports=''},{}],dfLel:[function(e,t,r){t.exports=''},{}],j8dnn:[function(e,t,r){t.exports=''},{}],fMoi9:[function(e,t,r){t.exports=''},{}],auIjA:[function(e,t,r){t.exports=''},{}],g3V1U:[function(e,t,r){t.exports=''},{}],\"3LQJt\":[function(e,t,r){t.exports=''},{}],bcTkc:[function(e,t,r){t.exports=''},{}],jDSoL:[function(e,t,r){t.exports=''},{}],jqFLt:[function(e,t,r){t.exports=''},{}],\"5qYod\":[function(e,t,r){t.exports=''},{}],\"25MvP\":[function(e,t,r){t.exports=''},{}],\"6CCX4\":[function(e,t,r){t.exports=''},{}],m9TwS:[function(e,t,r){t.exports=''},{}],iWJrW:[function(e,t,r){t.exports=''},{}],d5XKP:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"./flip\"),n=o.interopDefault(i),a=e(\"./aspectRatio\"),s=o.interopDefault(a),l=e(\"./playbackRate\"),c=o.interopDefault(l),p=e(\"./subtitleOffset\"),u=o.interopDefault(p),d=e(\"../utils/component\"),f=o.interopDefault(d),h=e(\"../utils\");function m(e,t,r){for(let o=0;o{t.playbackRate&&this.option.push(c.default(e)),t.aspectRatio&&this.option.push(s.default(e)),t.flip&&this.option.push(n.default(e)),t.subtitleOffset&&this.option.push(u.default(e));for(let e=0;e{this.show&&(this.show=!1,this.init(this.option))})),r(i,\"click\",(t=>{!this.show||h.includeFromEvent(t,e.controls.setting)||h.includeFromEvent(t,this.$parent)||(this.show=!1,this.init(this.option))})))}add(e){\"function\"==typeof e?this.option.push(e(this.art)):this.option.push(e),this.cache=new Map,this.events.forEach((e=>e())),this.events=[],this.$parent.innerHTML=\"\",this.option=m(this.option),this.init(this.option)}creatHeader(e){const{icons:t,events:{proxy:r}}=this.art,o=document.createElement(\"div\");h.addClass(o,\"art-setting-item\"),h.addClass(o,\"art-setting-item-back\");const i=h.append(o,'
'),n=document.createElement(\"div\");h.addClass(n,\"art-setting-item-left-icon\"),h.append(n,t.arrowLeft),h.append(i,n),h.append(i,e._parentItem.html);const a=r(o,\"click\",(()=>{this.init(e._parentList)}));return this.events.push(a),o}creatItem(e){const{icons:t,events:{proxy:r}}=this.art,o=e.selector&&e.selector.length,i=document.createElement(\"div\");h.addClass(i,\"art-setting-item\"),e.default&&h.addClass(i,\"art-current\");const n=h.append(i,'
'),a=h.append(i,'
'),s=document.createElement(\"div\");h.addClass(s,\"art-setting-item-left-icon\"),h.append(s,o?e.icon||t.config:t.check),h.append(n,s),e._$icon=s,h.def(e,\"icon\",{get:()=>s.innerHTML,set(e){\"string\"!=typeof e&&\"number\"!=typeof e||(s.innerHTML=e)}});const l=document.createElement(\"div\");if(h.addClass(l,\"art-setting-item-left-text\"),h.append(l,e.html||\"\"),h.append(n,l),e._$html=l,h.def(e,\"html\",{get:()=>l.innerHTML,set(e){\"string\"!=typeof e&&\"number\"!=typeof e||(l.innerHTML=e)}}),o){const r=document.createElement(\"div\");h.addClass(r,\"art-setting-item-right-tooltip\"),h.append(r,e.tooltip||\"\"),h.append(a,r),e._$tooltip=r,h.def(e,\"tooltip\",{get:()=>r.innerHTML,set(e){\"string\"!=typeof e&&\"number\"!=typeof e||(r.innerHTML=e)}});const o=document.createElement(\"div\");h.addClass(o,\"art-setting-item-right-icon\"),h.append(o,t.arrowRight),h.append(a,o)}const c=r(i,\"click\",(async t=>{if(o)this.init(e.selector,e.width);else if(h.inverseClass(i,\"art-current\"),e._parentList&&this.init(e._parentList),e._parentItem&&e._parentItem.onSelect){const r=await e._parentItem.onSelect.call(this.art,e,i,t);e._parentItem._$tooltip&&(\"string\"!=typeof r&&\"number\"!=typeof r||(e._parentItem._$tooltip.innerHTML=r))}}));return this.events.push(c),i}init(e,t){const{constructor:r}=this.art;if(this.cache.has(e)){const t=this.cache.get(e);h.inverseClass(t,\"art-current\"),h.setStyle(this.$parent,\"width\",`${t.dataset.width}px`),h.setStyle(this.$parent,\"height\",`${t.dataset.height}px`)}else{const o=document.createElement(\"div\");h.addClass(o,\"art-setting-panel\"),o.dataset.width=t||r.SETTING_WIDTH,o.dataset.height=e.length*r.SETTING_ITEM_HEIGHT,e[0]&&e[0]._parentItem&&(h.append(o,this.creatHeader(e[0])),o.dataset.height=Number(o.dataset.height)+r.SETTING_ITEM_HEIGHT);for(let t=0;te.dataset.value===i));a&&o.inverseClass(a,\"art-current\")}return{width:i.SETTING_ITEM_WIDTH,html:t.get(\"Video Flip\"),tooltip:t.get(n[e.flip]),icon:r.config,selector:Object.keys(n).map((r=>({value:r,default:r===e.flip,html:t.get(n[r])}))),onSelect(t){e.flip=t.value},mounted:(t,r)=>{a(t,r._$tooltip,e.flip),e.on(\"flip\",(()=>{a(t,r._$tooltip,e.flip)}))}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"1gs5B\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{i18n:t,icons:r,constructor:i}=e;function n(e){return\"default\"===e?t.get(\"Default\"):e}function a(e,t,r){t&&(t.innerText=n(r));const i=o.queryAll(\".art-setting-item\",e).find((e=>e.dataset.value===r));i&&o.inverseClass(i,\"art-current\")}return{width:i.SETTING_ITEM_WIDTH,html:t.get(\"Aspect Ratio\"),icon:r.aspectRatio,tooltip:n(e.aspectRatio),selector:[\"default\",\"4:3\",\"16:9\"].map((t=>({value:t,default:t===e.aspectRatio,html:n(t)}))),onSelect(t){e.aspectRatio=t.value},mounted:(t,r)=>{a(t,r._$tooltip,e.aspectRatio),e.on(\"aspectRatio\",(()=>{a(t,r._$tooltip,e.aspectRatio)}))}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],j50mh:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{i18n:t,icons:r,constructor:i}=e;function n(e){return 1===e?t.get(\"Normal\"):e}function a(e,t,r){t&&(t.innerText=n(r));const i=o.queryAll(\".art-setting-item\",e).find((e=>Number(e.dataset.value)===r));i&&o.inverseClass(i,\"art-current\")}return{width:i.SETTING_ITEM_WIDTH,html:t.get(\"Play Speed\"),tooltip:n(e.playbackRate),icon:r.playbackRate,selector:[.5,.75,1,1.25,1.5,2].map((t=>({value:t,default:t===e.playbackRate,html:n(t)}))),onSelect(t){e.playbackRate=t.value},mounted:(t,r)=>{a(t,r._$tooltip,e.playbackRate),e.on(\"playbackRate\",(()=>{a(t,r._$tooltip,e.playbackRate)}))}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],i17b6:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{i18n:t,icons:r,constructor:i}=e;function n(e){return 0===e?t.get(\"Normal\"):e}function a(e,t,r){t&&(t.innerText=n(r));const i=o.queryAll(\".art-setting-item\",e).find((e=>Number(e.dataset.value)===r));i&&o.inverseClass(i,\"art-current\")}return{width:i.SETTING_ITEM_WIDTH,html:t.get(\"Subtitle Offset\"),tooltip:n(e.subtitleOffset),icon:r.subtitle,selector:[-5,-4,-3,-2,-1,0,1,2,3,4,5].map((t=>({value:t,default:t===e.subtitleOffset,html:n(t)}))),onSelect(t){e.subtitleOffset=t.value},mounted:(t,r)=>{a(t,r._$tooltip,e.subtitleOffset),e.on(\"subtitleOffset\",(()=>{a(t,r._$tooltip,e.subtitleOffset)}))}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"5M8nN\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);r.default=class{constructor(){this.name=\"artplayer_settings\",this.settings={}}get(e){try{const t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{const r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{const t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],jWfEd:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"../utils\"),n=e(\"./miniProgressBar\"),a=o.interopDefault(n),s=e(\"./autoOrientation\"),l=o.interopDefault(s),c=e(\"./autoPlayback\"),p=o.interopDefault(c),u=e(\"./fastForward\"),d=o.interopDefault(u),f=e(\"./lock\"),h=o.interopDefault(f);r.default=class{constructor(e){this.art=e,this.id=0;const{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(a.default),t.lock&&i.isMobile&&this.add(h.default),t.autoPlayback&&this.add(p.default),t.autoOrientation&&i.isMobile&&this.add(l.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(d.default);for(let e=0;e{e.layers.add({name:\"miniProgressBar\",mounted(t){e.on(\"destroy\",(()=>{t.style.display=\"none\"})),e.on(\"video:timeupdate\",(()=>{t.style.width=100*e.played+\"%\"})),e.on(\"setBar\",((e,r)=>{\"played\"===e&&(t.style.width=100*r+\"%\")}))}})})),{name:\"miniProgressBar\"}}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],aPIVP:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{option:t,constructor:r,template:{$player:i,$video:n}}=e;return e.on(\"fullscreenWeb\",(a=>{if(a){const{videoWidth:t,videoHeight:a}=n,{clientWidth:s,clientHeight:l}=document.documentElement;(t>a&&sl)&&setTimeout((()=>{o.setStyle(i,\"width\",`${l}px`),o.setStyle(i,\"height\",`${s}px`),o.setStyle(i,\"transform-origin\",\"0 0\"),o.setStyle(i,\"transform\",`rotate(90deg) translate(0, -${s}px)`),o.addClass(i,\"art-auto-orientation\"),e.emit(\"resize\")}),r.MOBILE_AUTO_ORIENTATION_TIME)}else o.hasClass(i,\"art-auto-orientation\")&&(o.setStyle(i,\"width\",null),o.setStyle(i,\"height\",null),o.setStyle(i,\"transform\",null),o.setStyle(i,\"transform-origin\",null),o.removeClass(i,\"art-auto-orientation\"),e.aspectRatioReset=!0,e.autoSize=t.autoSize,e.notice.show=\"\",e.emit(\"resize\"))})),e.on(\"fullscreen\",(async e=>{const t=screen.orientation.type;if(e){const{videoWidth:e,videoHeight:r}=n,{clientWidth:a,clientHeight:s}=document.documentElement;if(e>r&&as){const e=t.startsWith(\"portrait\")?\"landscape\":\"portrait\";await screen.orientation.lock(e),o.addClass(i,\"art-auto-orientation-fullscreen\")}}else o.hasClass(i,\"art-auto-orientation-fullscreen\")&&(await screen.orientation.lock(t),o.removeClass(i,\"art-auto-orientation-fullscreen\"))})),{name:\"autoOrientation\",get state(){return o.hasClass(i,\"art-auto-orientation\")}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],j87OI:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{i18n:t,storage:r,constructor:i,template:{$poster:n}}=e;return e.on(\"video:timeupdate\",(()=>{const t=r.get(\"times\")||{},o=Object.keys(t);o.length>i.AUTO_PLAYBACK_MAX&&delete t[o[0]],t[e.option.url]=e.currentTime,r.set(\"times\",t)})),e.on(\"ready\",(()=>{const i=(r.get(\"times\")||{})[e.option.url];i&&(e.seek=i,o.setStyle(n,\"display\",\"none\"),e.notice.show=`${t.get(\"Auto playback at\")} ${o.secondToTime(i)}`)})),{name:\"autoPlayback\",get times(){return r.get(\"times\")||{}},clear:()=>r.del(\"times\")}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"1VTki\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{constructor:t,events:{proxy:r},template:{$player:i,$video:n}}=e;let a=null,s=!1;const l=()=>{clearTimeout(a),s&&(s=!1,e.playbackRate=1,o.removeClass(i,\"art-fast-forward\"))};return r(n,\"touchstart\",(r=>{1===r.touches.length&&e.playing&&(a=setTimeout((()=>{s=!0,e.playbackRate=t.FAST_FORWARD_VALUE,o.addClass(i,\"art-fast-forward\")}),t.FAST_FORWARD_TIME))})),r(document,\"touchmove\",l),r(document,\"touchend\",l),{name:\"fastForward\",get state(){return o.hasClass(i,\"art-fast-forward\")}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],\"7BtoE\":[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);var o=e(\"../utils\");r.default=function(e){const{layers:t,icons:r,template:{$player:i}}=e;return t.add({name:\"lock\",mounted(t){const i=o.append(t,r.lock),n=o.append(t,r.unlock);o.setStyle(i,\"display\",\"none\"),e.on(\"lock\",(e=>{e?(o.setStyle(i,\"display\",\"inline-flex\"),o.setStyle(n,\"display\",\"none\")):(o.setStyle(i,\"display\",\"none\"),o.setStyle(n,\"display\",\"inline-flex\"))}))},click(){o.hasClass(i,\"art-lock\")?(o.removeClass(i,\"art-lock\"),e.emit(\"lock\",!1)):(o.addClass(i,\"art-lock\"),e.emit(\"lock\",!0))}}),{name:\"lock\",get state(){return o.hasClass(i,\"art-lock\")}}}},{\"../utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],aafSd:[function(e,t,r){e(\"@parcel/transformer-js/src/esmodule-helpers.js\").defineInteropFlag(r);r.default=class{constructor(e){this.art=e,this.init()}get current(){return this.art.option.ads[this.index]}get prev(){return this.art.option.ads[this.index-1]}get next(){return this.art.option.ads[this.index+1]}init(){this.index=0,this.isEnd=!1,this.playing=!1,this.urlCache=this.art.option.url,this.current&&(this.playing=!0,this.play(this.current))}play(e={}){this.isEnd||(this.art.switchUrl(e.url),this.art.once(\"video:timeupdate\",(()=>{this.art.emit(\"ads:start\",e)})),this.art.once(\"video:ended\",(()=>{const e=this.next;e?(this.index+=1,this.play(e)):this.end()})))}end(){this.isEnd||(this.isEnd=!0,this.playing=!1,this.art.option.url=this.urlCache,this.art.switchUrl(this.urlCache),this.art.emit(\"ads:end\"))}}},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}],fkUkB:[function(e,t,r){var o=e(\"@parcel/transformer-js/src/esmodule-helpers.js\");o.defineInteropFlag(r);var i=e(\"./config\"),n=o.interopDefault(i),a=e(\"./utils\");r.default=class{constructor(e){const{option:t,events:{proxy:r},template:{$video:o}}=e;for(let t=0;t{e.emit(`video:${t.type}`,t)}));Object.keys(t.moreVideoAttr).forEach((e=>{o[e]=t.moreVideoAttr[e]})),t.muted&&(o.muted=t.muted),t.volume&&(o.volume=a.clamp(t.volume,0,1)),t.poster&&(o.poster=t.poster),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o[\"webkit-playsinline\"]=!0);const i=t.type||a.getExt(t.url),s=t.customType[i];i&&s?(s(o,t.url,e),e.emit(\"customType\",i)):(o.src=t.url,e.emit(\"url\",o.src))}}},{\"./config\":\"eksZR\",\"./utils\":\"geSvU\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"fRZO2\"}]},[\"6SN6P\"],\"6SN6P\");","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"flvjs\"] = factory();\n\telse\n\t\troot[\"flvjs\"] = factory();\n})(self, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./node_modules/es6-promise/dist/es6-promise.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/es6-promise/dist/es6-promise.js ***!\n \\******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n(function (global, factory) {\n true ? module.exports = factory() :\n 0;\n}(this, (function () {\n 'use strict';\n function objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n }\n function isFunction(x) {\n return typeof x === 'function';\n }\n var _isArray = void 0;\n if (Array.isArray) {\n _isArray = Array.isArray;\n }\n else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n }\n var isArray = _isArray;\n var len = 0;\n var vertxNext = void 0;\n var customSchedulerFn = void 0;\n var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n }\n else {\n scheduleFlush();\n }\n }\n };\n function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n }\n function setAsap(asapFn) {\n asap = asapFn;\n }\n var browserWindow = typeof window !== 'undefined' ? window : undefined;\n var browserGlobal = browserWindow || {};\n var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\n var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n // test for web worker but not in IE10\n var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n // node\n function useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n }\n // vertx\n function useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n return useSetTimeout();\n }\n function useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n }\n // web worker\n function useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n }\n function useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n }\n var queue = new Array(1000);\n function flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n callback(arg);\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n len = 0;\n }\n function attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n }\n catch (e) {\n return useSetTimeout();\n }\n }\n var scheduleFlush = void 0;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (isNode) {\n scheduleFlush = useNextTick();\n }\n else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n }\n else if (isWorker) {\n scheduleFlush = useMessageChannel();\n }\n else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n }\n else {\n scheduleFlush = useSetTimeout();\n }\n function then(onFulfillment, onRejection) {\n var parent = this;\n var child = new this.constructor(noop);\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n var _state = parent._state;\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n }\n else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n return child;\n }\n /**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n \n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n \n promise.then(function(value){\n // value === 1\n });\n ```\n \n Instead of writing the above, your code now simply becomes the following:\n \n ```javascript\n let promise = Promise.resolve(1);\n \n promise.then(function(value){\n // value === 1\n });\n ```\n \n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n */\n function resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n }\n var PROMISE_ID = Math.random().toString(36).substring(2);\n function noop() { }\n var PENDING = void 0;\n var FULFILLED = 1;\n var REJECTED = 2;\n function selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n function cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n }\n catch (e) {\n return e;\n }\n }\n function handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n }\n else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n }\n function handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n }\n else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n }\n else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n }\n function handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n }\n else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n }\n else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n }\n else {\n fulfill(promise, maybeThenable);\n }\n }\n }\n function resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n }\n else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n }\n catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n }\n else {\n fulfill(promise, value);\n }\n }\n function publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n publish(promise);\n }\n function fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._result = value;\n promise._state = FULFILLED;\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n }\n function reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n asap(publishRejection, promise);\n }\n function subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n parent._onerror = null;\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n }\n function publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n if (subscribers.length === 0) {\n return;\n }\n var child = void 0, callback = void 0, detail = promise._result;\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n if (child) {\n invokeCallback(settled, child, callback, detail);\n }\n else {\n callback(detail);\n }\n }\n promise._subscribers.length = 0;\n }\n function invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback), value = void 0, error = void 0, succeeded = true;\n if (hasCallback) {\n try {\n value = callback(detail);\n }\n catch (e) {\n succeeded = false;\n error = e;\n }\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n }\n else {\n value = detail;\n }\n if (promise._state !== PENDING) {\n // noop\n }\n else if (hasCallback && succeeded) {\n resolve(promise, value);\n }\n else if (succeeded === false) {\n reject(promise, error);\n }\n else if (settled === FULFILLED) {\n fulfill(promise, value);\n }\n else if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n function initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n }\n catch (e) {\n reject(promise, e);\n }\n }\n var id = 0;\n function nextId() {\n return id++;\n }\n function makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n }\n function validationError() {\n return new Error('Array Methods must be provided an Array');\n }\n var Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n this._result = new Array(this.length);\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n }\n else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n }\n else {\n reject(this.promise, validationError());\n }\n }\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n }\n catch (e) {\n didError = true;\n error = e;\n }\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n }\n else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n }\n else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n }\n else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n }\n else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n }\n else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n if (promise._state === PENDING) {\n this._remaining--;\n if (state === REJECTED) {\n reject(promise, value);\n }\n else {\n this._result[i] = value;\n }\n }\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n return Enumerator;\n }();\n /**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n \n Example:\n \n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n \n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n \n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n \n Example:\n \n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n \n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n \n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n */\n function all(entries) {\n return new Enumerator(this, entries).promise;\n }\n /**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n \n Example:\n \n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n \n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n \n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n \n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n \n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n \n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n \n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n \n An example real-world use case is implementing timeouts:\n \n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n \n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n */\n function race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n }\n else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n }\n /**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n \n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n \n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n \n Instead of writing the above, your code now simply becomes the following:\n \n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n \n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n \n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n */\n function reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n }\n function needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n function needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n \n Terminology\n -----------\n \n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n \n A promise can be in one of three states: pending, fulfilled, or rejected.\n \n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n \n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n \n \n Basic Usage:\n ------------\n \n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n \n // on failure\n reject(reason);\n });\n \n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n \n Advanced Usage:\n ---------------\n \n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n \n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n \n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n \n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n \n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n \n Unlike callbacks, promises are great composable primitives.\n \n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n \n return values;\n });\n ```\n \n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n */\n var Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n return promise.then(callback, callback);\n };\n return Promise;\n }();\n Promise$1.prototype.then = then;\n Promise$1.all = all;\n Promise$1.race = race;\n Promise$1.resolve = resolve$1;\n Promise$1.reject = reject$1;\n Promise$1._setScheduler = setScheduler;\n Promise$1._setAsap = setAsap;\n Promise$1._asap = asap;\n /*global self*/\n function polyfill() {\n var local = void 0;\n if (typeof __webpack_require__.g !== 'undefined') {\n local = __webpack_require__.g;\n }\n else if (typeof self !== 'undefined') {\n local = self;\n }\n else {\n try {\n local = Function('return this')();\n }\n catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n var P = local.Promise;\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n }\n catch (e) {\n // silently ignored\n }\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n local.Promise = Promise$1;\n }\n // Strange compat..\n Promise$1.polyfill = polyfill;\n Promise$1.Promise = Promise$1;\n return Promise$1;\n})));\n\n\n/***/ }),\n\n/***/ \"./node_modules/events/events.js\":\n/*!***************************************!*\\\n !*** ./node_modules/events/events.js ***!\n \\***************************************/\n/***/ (function(module) {\n\n\"use strict\";\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\nvar ReflectOwnKeys;\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n}\nelse if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n}\nelse {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n}\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function () {\n return defaultMaxListeners;\n },\n set: function (arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\nEventEmitter.init = function () {\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || undefined;\n};\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = (type === 'error');\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n var handler = events[type];\n if (handler === undefined)\n return false;\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n }\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n};\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n }\n else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener);\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n }\n else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n }\n else if (prepend) {\n existing.unshift(listener);\n }\n else {\n existing.push(listener);\n }\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined)\n return this;\n list = events[type];\n if (list === undefined)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n }\n else if (typeof list !== 'function') {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n return this;\n };\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined)\n return this;\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener')\n continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n }\n else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined)\n return [];\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n }\n else {\n return listenerCount.call(emitter, type);\n }\n};\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n if (events !== undefined) {\n var evlistener = events[type];\n if (typeof evlistener === 'function') {\n return 1;\n }\n else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n return 0;\n}\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n }\n else {\n emitter.on(name, listener);\n }\n }\n else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n }\n else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/webworkify-webpack/index.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/webworkify-webpack/index.js ***!\n \\**************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nfunction webpackBootstrapFunc(modules) {\n /******/ // The module cache\n /******/ var installedModules = {};\n /******/ // The require function\n /******/ function __nested_webpack_require_164__(moduleId) {\n /******/ // Check if module is in cache\n /******/ if (installedModules[moduleId])\n /******/ return installedModules[moduleId].exports;\n /******/ // Create a new module (and put it into the cache)\n /******/ var module = installedModules[moduleId] = {\n /******/ i: moduleId,\n /******/ l: false,\n /******/ exports: {}\n /******/ \n };\n /******/ // Execute the module function\n /******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_164__);\n /******/ // Flag the module as loaded\n /******/ module.l = true;\n /******/ // Return the exports of the module\n /******/ return module.exports;\n /******/ \n }\n /******/ // expose the modules object (__webpack_modules__)\n /******/ __nested_webpack_require_164__.m = modules;\n /******/ // expose the module cache\n /******/ __nested_webpack_require_164__.c = installedModules;\n /******/ // identity function for calling harmony imports with the correct context\n /******/ __nested_webpack_require_164__.i = function (value) { return value; };\n /******/ // define getter function for harmony exports\n /******/ __nested_webpack_require_164__.d = function (exports, name, getter) {\n /******/ if (!__nested_webpack_require_164__.o(exports, name)) {\n /******/ Object.defineProperty(exports, name, {\n /******/ configurable: false,\n /******/ enumerable: true,\n /******/ get: getter\n /******/ \n });\n /******/ }\n /******/ \n };\n /******/ // define __esModule on exports\n /******/ __nested_webpack_require_164__.r = function (exports) {\n /******/ Object.defineProperty(exports, '__esModule', { value: true });\n /******/ \n };\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/ __nested_webpack_require_164__.n = function (module) {\n /******/ var getter = module && module.__esModule ?\n /******/ function getDefault() { return module['default']; } :\n /******/ function getModuleExports() { return module; };\n /******/ __nested_webpack_require_164__.d(getter, 'a', getter);\n /******/ return getter;\n /******/ \n };\n /******/ // Object.prototype.hasOwnProperty.call\n /******/ __nested_webpack_require_164__.o = function (object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n /******/ // __webpack_public_path__\n /******/ __nested_webpack_require_164__.p = \"/\";\n /******/ // on error function for async loading\n /******/ __nested_webpack_require_164__.oe = function (err) { console.error(err); throw err; };\n var f = __nested_webpack_require_164__(__nested_webpack_require_164__.s = ENTRY_MODULE);\n return f.default || f; // try to call default if defined to also support babel esmodule exports\n}\nvar moduleNameReqExp = '[\\\\.|\\\\-|\\\\+|\\\\w|\\/|@]+';\nvar dependencyRegExp = '\\\\(\\\\s*(\\/\\\\*.*?\\\\*\\/)?\\\\s*.*?(' + moduleNameReqExp + ').*?\\\\)'; // additional chars when output.pathinfo is true\n// http://stackoverflow.com/a/2593661/130442\nfunction quoteRegExp(str) {\n return (str + '').replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&');\n}\nfunction isNumeric(n) {\n return !isNaN(1 * n); // 1 * n converts integers, integers as string (\"123\"), 1e3 and \"1e3\" to integers and strings to NaN\n}\nfunction getModuleDependencies(sources, module, queueName) {\n var retval = {};\n retval[queueName] = [];\n var fnString = module.toString();\n var wrapperSignature = fnString.match(/^function\\s?\\w*\\(\\w+,\\s*\\w+,\\s*(\\w+)\\)/);\n if (!wrapperSignature)\n return retval;\n var webpackRequireName = wrapperSignature[1];\n // main bundle deps\n var re = new RegExp('(\\\\\\\\n|\\\\W)' + quoteRegExp(webpackRequireName) + dependencyRegExp, 'g');\n var match;\n while ((match = re.exec(fnString))) {\n if (match[3] === 'dll-reference')\n continue;\n retval[queueName].push(match[3]);\n }\n // dll deps\n re = new RegExp('\\\\(' + quoteRegExp(webpackRequireName) + '\\\\(\"(dll-reference\\\\s(' + moduleNameReqExp + '))\"\\\\)\\\\)' + dependencyRegExp, 'g');\n while ((match = re.exec(fnString))) {\n if (!sources[match[2]]) {\n retval[queueName].push(match[1]);\n sources[match[2]] = __webpack_require__(match[1]).m;\n }\n retval[match[2]] = retval[match[2]] || [];\n retval[match[2]].push(match[4]);\n }\n // convert 1e3 back to 1000 - this can be important after uglify-js converted 1000 to 1e3\n var keys = Object.keys(retval);\n for (var i = 0; i < keys.length; i++) {\n for (var j = 0; j < retval[keys[i]].length; j++) {\n if (isNumeric(retval[keys[i]][j])) {\n retval[keys[i]][j] = 1 * retval[keys[i]][j];\n }\n }\n }\n return retval;\n}\nfunction hasValuesInQueues(queues) {\n var keys = Object.keys(queues);\n return keys.reduce(function (hasValues, key) {\n return hasValues || queues[key].length > 0;\n }, false);\n}\nfunction getRequiredModules(sources, moduleId) {\n var modulesQueue = {\n main: [moduleId]\n };\n var requiredModules = {\n main: []\n };\n var seenModules = {\n main: {}\n };\n while (hasValuesInQueues(modulesQueue)) {\n var queues = Object.keys(modulesQueue);\n for (var i = 0; i < queues.length; i++) {\n var queueName = queues[i];\n var queue = modulesQueue[queueName];\n var moduleToCheck = queue.pop();\n seenModules[queueName] = seenModules[queueName] || {};\n if (seenModules[queueName][moduleToCheck] || !sources[queueName][moduleToCheck])\n continue;\n seenModules[queueName][moduleToCheck] = true;\n requiredModules[queueName] = requiredModules[queueName] || [];\n requiredModules[queueName].push(moduleToCheck);\n var newModules = getModuleDependencies(sources, sources[queueName][moduleToCheck], queueName);\n var newModulesKeys = Object.keys(newModules);\n for (var j = 0; j < newModulesKeys.length; j++) {\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]] || [];\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]].concat(newModules[newModulesKeys[j]]);\n }\n }\n }\n return requiredModules;\n}\nmodule.exports = function (moduleId, options) {\n options = options || {};\n var sources = {\n main: __webpack_require__.m\n };\n var requiredModules = options.all ? { main: Object.keys(sources.main) } : getRequiredModules(sources, moduleId);\n var src = '';\n Object.keys(requiredModules).filter(function (m) { return m !== 'main'; }).forEach(function (module) {\n var entryModule = 0;\n while (requiredModules[module][entryModule]) {\n entryModule++;\n }\n requiredModules[module].push(entryModule);\n sources[module][entryModule] = '(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })';\n src = src + 'var ' + module + ' = (' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(entryModule)) + ')({' + requiredModules[module].map(function (id) { return '' + JSON.stringify(id) + ': ' + sources[module][id].toString(); }).join(',') + '});\\n';\n });\n src = src + 'new ((' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(moduleId)) + ')({' + requiredModules.main.map(function (id) { return '' + JSON.stringify(id) + ': ' + sources.main[id].toString(); }).join(',') + '}))(self);';\n var blob = new window.Blob([src], { type: 'text/javascript' });\n if (options.bare) {\n return blob;\n }\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n var workerUrl = URL.createObjectURL(blob);\n var worker = new window.Worker(workerUrl);\n worker.objectURL = workerUrl;\n return worker;\n};\n\n\n/***/ }),\n\n/***/ \"./src/config.js\":\n/*!***********************!*\\\n !*** ./src/config.js ***!\n \\***********************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"defaultConfig\": function() { return /* binding */ defaultConfig; },\n/* harmony export */ \"createDefaultConfig\": function() { return /* binding */ createDefaultConfig; }\n/* harmony export */ });\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar defaultConfig = {\n enableWorker: false,\n enableStashBuffer: true,\n stashInitialSize: undefined,\n isLive: false,\n lazyLoad: true,\n lazyLoadMaxDuration: 3 * 60,\n lazyLoadRecoverDuration: 30,\n deferLoadAfterSourceOpen: true,\n // autoCleanupSourceBuffer: default as false, leave unspecified\n autoCleanupMaxBackwardDuration: 3 * 60,\n autoCleanupMinBackwardDuration: 2 * 60,\n statisticsInfoReportInterval: 600,\n fixAudioTimestampGap: true,\n accurateSeek: false,\n seekType: 'range',\n seekParamStart: 'bstart',\n seekParamEnd: 'bend',\n rangeLoadZeroStart: false,\n customSeekHandler: undefined,\n reuseRedirectedURL: false,\n // referrerPolicy: leave as unspecified\n headers: undefined,\n customLoader: undefined\n};\nfunction createDefaultConfig() {\n return Object.assign({}, defaultConfig);\n}\n\n\n/***/ }),\n\n/***/ \"./src/core/features.js\":\n/*!******************************!*\\\n !*** ./src/core/features.js ***!\n \\******************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _io_io_controller_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../io/io-controller.js */ \"./src/io/io-controller.js\");\n/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config.js */ \"./src/config.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar Features = /** @class */ (function () {\n function Features() {\n }\n Features.supportMSEH264Playback = function () {\n return window.MediaSource &&\n window.MediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\n };\n Features.supportNetworkStreamIO = function () {\n var ioctl = new _io_io_controller_js__WEBPACK_IMPORTED_MODULE_0__.default({}, (0,_config_js__WEBPACK_IMPORTED_MODULE_1__.createDefaultConfig)());\n var loaderType = ioctl.loaderType;\n ioctl.destroy();\n return loaderType == 'fetch-stream-loader' || loaderType == 'xhr-moz-chunked-loader';\n };\n Features.getNetworkLoaderTypeName = function () {\n var ioctl = new _io_io_controller_js__WEBPACK_IMPORTED_MODULE_0__.default({}, (0,_config_js__WEBPACK_IMPORTED_MODULE_1__.createDefaultConfig)());\n var loaderType = ioctl.loaderType;\n ioctl.destroy();\n return loaderType;\n };\n Features.supportNativeMediaPlayback = function (mimeType) {\n if (Features.videoElement == undefined) {\n Features.videoElement = window.document.createElement('video');\n }\n var canPlay = Features.videoElement.canPlayType(mimeType);\n return canPlay === 'probably' || canPlay == 'maybe';\n };\n Features.getFeatureList = function () {\n var features = {\n mseFlvPlayback: false,\n mseLiveFlvPlayback: false,\n networkStreamIO: false,\n networkLoaderName: '',\n nativeMP4H264Playback: false,\n nativeWebmVP8Playback: false,\n nativeWebmVP9Playback: false\n };\n features.mseFlvPlayback = Features.supportMSEH264Playback();\n features.networkStreamIO = Features.supportNetworkStreamIO();\n features.networkLoaderName = Features.getNetworkLoaderTypeName();\n features.mseLiveFlvPlayback = features.mseFlvPlayback && features.networkStreamIO;\n features.nativeMP4H264Playback = Features.supportNativeMediaPlayback('video/mp4; codecs=\"avc1.42001E, mp4a.40.2\"');\n features.nativeWebmVP8Playback = Features.supportNativeMediaPlayback('video/webm; codecs=\"vp8.0, vorbis\"');\n features.nativeWebmVP9Playback = Features.supportNativeMediaPlayback('video/webm; codecs=\"vp9\"');\n return features;\n };\n return Features;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (Features);\n\n\n/***/ }),\n\n/***/ \"./src/core/media-info.js\":\n/*!********************************!*\\\n !*** ./src/core/media-info.js ***!\n \\********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MediaInfo = /** @class */ (function () {\n function MediaInfo() {\n this.mimeType = null;\n this.duration = null;\n this.hasAudio = null;\n this.hasVideo = null;\n this.audioCodec = null;\n this.videoCodec = null;\n this.audioDataRate = null;\n this.videoDataRate = null;\n this.audioSampleRate = null;\n this.audioChannelCount = null;\n this.width = null;\n this.height = null;\n this.fps = null;\n this.profile = null;\n this.level = null;\n this.refFrames = null;\n this.chromaFormat = null;\n this.sarNum = null;\n this.sarDen = null;\n this.metadata = null;\n this.segments = null; // MediaInfo[]\n this.segmentCount = null;\n this.hasKeyframesIndex = null;\n this.keyframesIndex = null;\n }\n MediaInfo.prototype.isComplete = function () {\n var audioInfoComplete = (this.hasAudio === false) ||\n (this.hasAudio === true &&\n this.audioCodec != null &&\n this.audioSampleRate != null &&\n this.audioChannelCount != null);\n var videoInfoComplete = (this.hasVideo === false) ||\n (this.hasVideo === true &&\n this.videoCodec != null &&\n this.width != null &&\n this.height != null &&\n this.fps != null &&\n this.profile != null &&\n this.level != null &&\n this.refFrames != null &&\n this.chromaFormat != null &&\n this.sarNum != null &&\n this.sarDen != null);\n // keyframesIndex may not be present\n return this.mimeType != null &&\n this.duration != null &&\n this.metadata != null &&\n this.hasKeyframesIndex != null &&\n audioInfoComplete &&\n videoInfoComplete;\n };\n MediaInfo.prototype.isSeekable = function () {\n return this.hasKeyframesIndex === true;\n };\n MediaInfo.prototype.getNearestKeyframe = function (milliseconds) {\n if (this.keyframesIndex == null) {\n return null;\n }\n var table = this.keyframesIndex;\n var keyframeIdx = this._search(table.times, milliseconds);\n return {\n index: keyframeIdx,\n milliseconds: table.times[keyframeIdx],\n fileposition: table.filepositions[keyframeIdx]\n };\n };\n MediaInfo.prototype._search = function (list, value) {\n var idx = 0;\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n if (value < list[0]) {\n idx = 0;\n lbound = ubound + 1; // skip search\n }\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (value >= list[mid] && value < list[mid + 1])) {\n idx = mid;\n break;\n }\n else if (list[mid] < value) {\n lbound = mid + 1;\n }\n else {\n ubound = mid - 1;\n }\n }\n return idx;\n };\n return MediaInfo;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (MediaInfo);\n\n\n/***/ }),\n\n/***/ \"./src/core/media-segment-info.js\":\n/*!****************************************!*\\\n !*** ./src/core/media-segment-info.js ***!\n \\****************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SampleInfo\": function() { return /* binding */ SampleInfo; },\n/* harmony export */ \"MediaSegmentInfo\": function() { return /* binding */ MediaSegmentInfo; },\n/* harmony export */ \"IDRSampleList\": function() { return /* binding */ IDRSampleList; },\n/* harmony export */ \"MediaSegmentInfoList\": function() { return /* binding */ MediaSegmentInfoList; }\n/* harmony export */ });\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Represents an media sample (audio / video)\nvar SampleInfo = /** @class */ (function () {\n function SampleInfo(dts, pts, duration, originalDts, isSync) {\n this.dts = dts;\n this.pts = pts;\n this.duration = duration;\n this.originalDts = originalDts;\n this.isSyncPoint = isSync;\n this.fileposition = null;\n }\n return SampleInfo;\n}());\n\n// Media Segment concept is defined in Media Source Extensions spec.\n// Particularly in ISO BMFF format, an Media Segment contains a moof box followed by a mdat box.\nvar MediaSegmentInfo = /** @class */ (function () {\n function MediaSegmentInfo() {\n this.beginDts = 0;\n this.endDts = 0;\n this.beginPts = 0;\n this.endPts = 0;\n this.originalBeginDts = 0;\n this.originalEndDts = 0;\n this.syncPoints = []; // SampleInfo[n], for video IDR frames only\n this.firstSample = null; // SampleInfo\n this.lastSample = null; // SampleInfo\n }\n MediaSegmentInfo.prototype.appendSyncPoint = function (sampleInfo) {\n sampleInfo.isSyncPoint = true;\n this.syncPoints.push(sampleInfo);\n };\n return MediaSegmentInfo;\n}());\n\n// Ordered list for recording video IDR frames, sorted by originalDts\nvar IDRSampleList = /** @class */ (function () {\n function IDRSampleList() {\n this._list = [];\n }\n IDRSampleList.prototype.clear = function () {\n this._list = [];\n };\n IDRSampleList.prototype.appendArray = function (syncPoints) {\n var list = this._list;\n if (syncPoints.length === 0) {\n return;\n }\n if (list.length > 0 && syncPoints[0].originalDts < list[list.length - 1].originalDts) {\n this.clear();\n }\n Array.prototype.push.apply(list, syncPoints);\n };\n IDRSampleList.prototype.getLastSyncPointBeforeDts = function (dts) {\n if (this._list.length == 0) {\n return null;\n }\n var list = this._list;\n var idx = 0;\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n if (dts < list[0].dts) {\n idx = 0;\n lbound = ubound + 1;\n }\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (dts >= list[mid].dts && dts < list[mid + 1].dts)) {\n idx = mid;\n break;\n }\n else if (list[mid].dts < dts) {\n lbound = mid + 1;\n }\n else {\n ubound = mid - 1;\n }\n }\n return this._list[idx];\n };\n return IDRSampleList;\n}());\n\n// Data structure for recording information of media segments in single track.\nvar MediaSegmentInfoList = /** @class */ (function () {\n function MediaSegmentInfoList(type) {\n this._type = type;\n this._list = [];\n this._lastAppendLocation = -1; // cached last insert location\n }\n Object.defineProperty(MediaSegmentInfoList.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MediaSegmentInfoList.prototype, \"length\", {\n get: function () {\n return this._list.length;\n },\n enumerable: false,\n configurable: true\n });\n MediaSegmentInfoList.prototype.isEmpty = function () {\n return this._list.length === 0;\n };\n MediaSegmentInfoList.prototype.clear = function () {\n this._list = [];\n this._lastAppendLocation = -1;\n };\n MediaSegmentInfoList.prototype._searchNearestSegmentBefore = function (originalBeginDts) {\n var list = this._list;\n if (list.length === 0) {\n return -2;\n }\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n var idx = 0;\n if (originalBeginDts < list[0].originalBeginDts) {\n idx = -1;\n return idx;\n }\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (originalBeginDts > list[mid].lastSample.originalDts &&\n (originalBeginDts < list[mid + 1].originalBeginDts))) {\n idx = mid;\n break;\n }\n else if (list[mid].originalBeginDts < originalBeginDts) {\n lbound = mid + 1;\n }\n else {\n ubound = mid - 1;\n }\n }\n return idx;\n };\n MediaSegmentInfoList.prototype._searchNearestSegmentAfter = function (originalBeginDts) {\n return this._searchNearestSegmentBefore(originalBeginDts) + 1;\n };\n MediaSegmentInfoList.prototype.append = function (mediaSegmentInfo) {\n var list = this._list;\n var msi = mediaSegmentInfo;\n var lastAppendIdx = this._lastAppendLocation;\n var insertIdx = 0;\n if (lastAppendIdx !== -1 && lastAppendIdx < list.length &&\n msi.originalBeginDts >= list[lastAppendIdx].lastSample.originalDts &&\n ((lastAppendIdx === list.length - 1) ||\n (lastAppendIdx < list.length - 1 &&\n msi.originalBeginDts < list[lastAppendIdx + 1].originalBeginDts))) {\n insertIdx = lastAppendIdx + 1; // use cached location idx\n }\n else {\n if (list.length > 0) {\n insertIdx = this._searchNearestSegmentBefore(msi.originalBeginDts) + 1;\n }\n }\n this._lastAppendLocation = insertIdx;\n this._list.splice(insertIdx, 0, msi);\n };\n MediaSegmentInfoList.prototype.getLastSegmentBefore = function (originalBeginDts) {\n var idx = this._searchNearestSegmentBefore(originalBeginDts);\n if (idx >= 0) {\n return this._list[idx];\n }\n else { // -1\n return null;\n }\n };\n MediaSegmentInfoList.prototype.getLastSampleBefore = function (originalBeginDts) {\n var segment = this.getLastSegmentBefore(originalBeginDts);\n if (segment != null) {\n return segment.lastSample;\n }\n else {\n return null;\n }\n };\n MediaSegmentInfoList.prototype.getLastSyncPointBefore = function (originalBeginDts) {\n var segmentIdx = this._searchNearestSegmentBefore(originalBeginDts);\n var syncPoints = this._list[segmentIdx].syncPoints;\n while (syncPoints.length === 0 && segmentIdx > 0) {\n segmentIdx--;\n syncPoints = this._list[segmentIdx].syncPoints;\n }\n if (syncPoints.length > 0) {\n return syncPoints[syncPoints.length - 1];\n }\n else {\n return null;\n }\n };\n return MediaSegmentInfoList;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/core/mse-controller.js\":\n/*!************************************!*\\\n !*** ./src/core/mse-controller.js ***!\n \\************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/utils/browser.js\");\n/* harmony import */ var _mse_events_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mse-events.js */ \"./src/core/mse-events.js\");\n/* harmony import */ var _media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./media-segment-info.js */ \"./src/core/media-segment-info.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n// Media Source Extensions controller\nvar MSEController = /** @class */ (function () {\n function MSEController(config) {\n this.TAG = 'MSEController';\n this._config = config;\n this._emitter = new (events__WEBPACK_IMPORTED_MODULE_0___default())();\n if (this._config.isLive && this._config.autoCleanupSourceBuffer == undefined) {\n // For live stream, do auto cleanup by default\n this._config.autoCleanupSourceBuffer = true;\n }\n this.e = {\n onSourceOpen: this._onSourceOpen.bind(this),\n onSourceEnded: this._onSourceEnded.bind(this),\n onSourceClose: this._onSourceClose.bind(this),\n onSourceBufferError: this._onSourceBufferError.bind(this),\n onSourceBufferUpdateEnd: this._onSourceBufferUpdateEnd.bind(this)\n };\n this._mediaSource = null;\n this._mediaSourceObjectURL = null;\n this._mediaElement = null;\n this._isBufferFull = false;\n this._hasPendingEos = false;\n this._requireSetMediaDuration = false;\n this._pendingMediaDuration = 0;\n this._pendingSourceBufferInit = [];\n this._mimeTypes = {\n video: null,\n audio: null\n };\n this._sourceBuffers = {\n video: null,\n audio: null\n };\n this._lastInitSegments = {\n video: null,\n audio: null\n };\n this._pendingSegments = {\n video: [],\n audio: []\n };\n this._pendingRemoveRanges = {\n video: [],\n audio: []\n };\n this._idrList = new _media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.IDRSampleList();\n }\n MSEController.prototype.destroy = function () {\n if (this._mediaElement || this._mediaSource) {\n this.detachMediaElement();\n }\n this.e = null;\n this._emitter.removeAllListeners();\n this._emitter = null;\n };\n MSEController.prototype.on = function (event, listener) {\n this._emitter.addListener(event, listener);\n };\n MSEController.prototype.off = function (event, listener) {\n this._emitter.removeListener(event, listener);\n };\n MSEController.prototype.attachMediaElement = function (mediaElement) {\n if (this._mediaSource) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__.IllegalStateException('MediaSource has been attached to an HTMLMediaElement!');\n }\n var ms = this._mediaSource = new window.MediaSource();\n ms.addEventListener('sourceopen', this.e.onSourceOpen);\n ms.addEventListener('sourceended', this.e.onSourceEnded);\n ms.addEventListener('sourceclose', this.e.onSourceClose);\n this._mediaElement = mediaElement;\n this._mediaSourceObjectURL = window.URL.createObjectURL(this._mediaSource);\n mediaElement.src = this._mediaSourceObjectURL;\n };\n MSEController.prototype.detachMediaElement = function () {\n if (this._mediaSource) {\n var ms = this._mediaSource;\n for (var type in this._sourceBuffers) {\n // pending segments should be discard\n var ps = this._pendingSegments[type];\n ps.splice(0, ps.length);\n this._pendingSegments[type] = null;\n this._pendingRemoveRanges[type] = null;\n this._lastInitSegments[type] = null;\n // remove all sourcebuffers\n var sb = this._sourceBuffers[type];\n if (sb) {\n if (ms.readyState !== 'closed') {\n // ms edge can throw an error: Unexpected call to method or property access\n try {\n ms.removeSourceBuffer(sb);\n }\n catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, error.message);\n }\n sb.removeEventListener('error', this.e.onSourceBufferError);\n sb.removeEventListener('updateend', this.e.onSourceBufferUpdateEnd);\n }\n this._mimeTypes[type] = null;\n this._sourceBuffers[type] = null;\n }\n }\n if (ms.readyState === 'open') {\n try {\n ms.endOfStream();\n }\n catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, error.message);\n }\n }\n ms.removeEventListener('sourceopen', this.e.onSourceOpen);\n ms.removeEventListener('sourceended', this.e.onSourceEnded);\n ms.removeEventListener('sourceclose', this.e.onSourceClose);\n this._pendingSourceBufferInit = [];\n this._isBufferFull = false;\n this._idrList.clear();\n this._mediaSource = null;\n }\n if (this._mediaElement) {\n this._mediaElement.src = '';\n this._mediaElement.removeAttribute('src');\n this._mediaElement = null;\n }\n if (this._mediaSourceObjectURL) {\n window.URL.revokeObjectURL(this._mediaSourceObjectURL);\n this._mediaSourceObjectURL = null;\n }\n };\n MSEController.prototype.appendInitSegment = function (initSegment, deferred) {\n if (!this._mediaSource || this._mediaSource.readyState !== 'open') {\n // sourcebuffer creation requires mediaSource.readyState === 'open'\n // so we defer the sourcebuffer creation, until sourceopen event triggered\n this._pendingSourceBufferInit.push(initSegment);\n // make sure that this InitSegment is in the front of pending segments queue\n this._pendingSegments[initSegment.type].push(initSegment);\n return;\n }\n var is = initSegment;\n var mimeType = \"\" + is.container;\n if (is.codec && is.codec.length > 0) {\n mimeType += \";codecs=\" + is.codec;\n }\n var firstInitSegment = false;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, 'Received Initialization Segment, mimeType: ' + mimeType);\n this._lastInitSegments[is.type] = is;\n if (mimeType !== this._mimeTypes[is.type]) {\n if (!this._mimeTypes[is.type]) { // empty, first chance create sourcebuffer\n firstInitSegment = true;\n try {\n var sb = this._sourceBuffers[is.type] = this._mediaSource.addSourceBuffer(mimeType);\n sb.addEventListener('error', this.e.onSourceBufferError);\n sb.addEventListener('updateend', this.e.onSourceBufferUpdateEnd);\n }\n catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, error.message);\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__.default.ERROR, { code: error.code, msg: error.message });\n return;\n }\n }\n else {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, \"Notice: \" + is.type + \" mimeType changed, origin: \" + this._mimeTypes[is.type] + \", target: \" + mimeType);\n }\n this._mimeTypes[is.type] = mimeType;\n }\n if (!deferred) {\n // deferred means this InitSegment has been pushed to pendingSegments queue\n this._pendingSegments[is.type].push(is);\n }\n if (!firstInitSegment) { // append immediately only if init segment in subsequence\n if (this._sourceBuffers[is.type] && !this._sourceBuffers[is.type].updating) {\n this._doAppendSegments();\n }\n }\n if (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.safari && is.container === 'audio/mpeg' && is.mediaDuration > 0) {\n // 'audio/mpeg' track under Safari may cause MediaElement's duration to be NaN\n // Manually correct MediaSource.duration to make progress bar seekable, and report right duration\n this._requireSetMediaDuration = true;\n this._pendingMediaDuration = is.mediaDuration / 1000; // in seconds\n this._updateMediaSourceDuration();\n }\n };\n MSEController.prototype.appendMediaSegment = function (mediaSegment) {\n var ms = mediaSegment;\n this._pendingSegments[ms.type].push(ms);\n if (this._config.autoCleanupSourceBuffer && this._needCleanupSourceBuffer()) {\n this._doCleanupSourceBuffer();\n }\n var sb = this._sourceBuffers[ms.type];\n if (sb && !sb.updating && !this._hasPendingRemoveRanges()) {\n this._doAppendSegments();\n }\n };\n MSEController.prototype.seek = function (seconds) {\n // remove all appended buffers\n for (var type in this._sourceBuffers) {\n if (!this._sourceBuffers[type]) {\n continue;\n }\n // abort current buffer append algorithm\n var sb = this._sourceBuffers[type];\n if (this._mediaSource.readyState === 'open') {\n try {\n // If range removal algorithm is running, InvalidStateError will be throwed\n // Ignore it.\n sb.abort();\n }\n catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, error.message);\n }\n }\n // IDRList should be clear\n this._idrList.clear();\n // pending segments should be discard\n var ps = this._pendingSegments[type];\n ps.splice(0, ps.length);\n if (this._mediaSource.readyState === 'closed') {\n // Parent MediaSource object has been detached from HTMLMediaElement\n continue;\n }\n // record ranges to be remove from SourceBuffer\n for (var i = 0; i < sb.buffered.length; i++) {\n var start = sb.buffered.start(i);\n var end = sb.buffered.end(i);\n this._pendingRemoveRanges[type].push({ start: start, end: end });\n }\n // if sb is not updating, let's remove ranges now!\n if (!sb.updating) {\n this._doRemoveRanges();\n }\n // Safari 10 may get InvalidStateError in the later appendBuffer() after SourceBuffer.remove() call\n // Internal parser's state may be invalid at this time. Re-append last InitSegment to workaround.\n // Related issue: https://bugs.webkit.org/show_bug.cgi?id=159230\n if (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.safari) {\n var lastInitSegment = this._lastInitSegments[type];\n if (lastInitSegment) {\n this._pendingSegments[type].push(lastInitSegment);\n if (!sb.updating) {\n this._doAppendSegments();\n }\n }\n }\n }\n };\n MSEController.prototype.endOfStream = function () {\n var ms = this._mediaSource;\n var sb = this._sourceBuffers;\n if (!ms || ms.readyState !== 'open') {\n if (ms && ms.readyState === 'closed' && this._hasPendingSegments()) {\n // If MediaSource hasn't turned into open state, and there're pending segments\n // Mark pending endOfStream, defer call until all pending segments appended complete\n this._hasPendingEos = true;\n }\n return;\n }\n if (sb.video && sb.video.updating || sb.audio && sb.audio.updating) {\n // If any sourcebuffer is updating, defer endOfStream operation\n // See _onSourceBufferUpdateEnd()\n this._hasPendingEos = true;\n }\n else {\n this._hasPendingEos = false;\n // Notify media data loading complete\n // This is helpful for correcting total duration to match last media segment\n // Otherwise MediaElement's ended event may not be triggered\n ms.endOfStream();\n }\n };\n MSEController.prototype.getNearestKeyframe = function (dts) {\n return this._idrList.getLastSyncPointBeforeDts(dts);\n };\n MSEController.prototype._needCleanupSourceBuffer = function () {\n if (!this._config.autoCleanupSourceBuffer) {\n return false;\n }\n var currentTime = this._mediaElement.currentTime;\n for (var type in this._sourceBuffers) {\n var sb = this._sourceBuffers[type];\n if (sb) {\n var buffered = sb.buffered;\n if (buffered.length >= 1) {\n if (currentTime - buffered.start(0) >= this._config.autoCleanupMaxBackwardDuration) {\n return true;\n }\n }\n }\n }\n return false;\n };\n MSEController.prototype._doCleanupSourceBuffer = function () {\n var currentTime = this._mediaElement.currentTime;\n for (var type in this._sourceBuffers) {\n var sb = this._sourceBuffers[type];\n if (sb) {\n var buffered = sb.buffered;\n var doRemove = false;\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i);\n if (start <= currentTime && currentTime < end + 3) { // padding 3 seconds\n if (currentTime - start >= this._config.autoCleanupMaxBackwardDuration) {\n doRemove = true;\n var removeEnd = currentTime - this._config.autoCleanupMinBackwardDuration;\n this._pendingRemoveRanges[type].push({ start: start, end: removeEnd });\n }\n }\n else if (end < currentTime) {\n doRemove = true;\n this._pendingRemoveRanges[type].push({ start: start, end: end });\n }\n }\n if (doRemove && !sb.updating) {\n this._doRemoveRanges();\n }\n }\n }\n };\n MSEController.prototype._updateMediaSourceDuration = function () {\n var sb = this._sourceBuffers;\n if (this._mediaElement.readyState === 0 || this._mediaSource.readyState !== 'open') {\n return;\n }\n if ((sb.video && sb.video.updating) || (sb.audio && sb.audio.updating)) {\n return;\n }\n var current = this._mediaSource.duration;\n var target = this._pendingMediaDuration;\n if (target > 0 && (isNaN(current) || target > current)) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, \"Update MediaSource duration from \" + current + \" to \" + target);\n this._mediaSource.duration = target;\n }\n this._requireSetMediaDuration = false;\n this._pendingMediaDuration = 0;\n };\n MSEController.prototype._doRemoveRanges = function () {\n for (var type in this._pendingRemoveRanges) {\n if (!this._sourceBuffers[type] || this._sourceBuffers[type].updating) {\n continue;\n }\n var sb = this._sourceBuffers[type];\n var ranges = this._pendingRemoveRanges[type];\n while (ranges.length && !sb.updating) {\n var range = ranges.shift();\n sb.remove(range.start, range.end);\n }\n }\n };\n MSEController.prototype._doAppendSegments = function () {\n var pendingSegments = this._pendingSegments;\n for (var type in pendingSegments) {\n if (!this._sourceBuffers[type] || this._sourceBuffers[type].updating) {\n continue;\n }\n if (pendingSegments[type].length > 0) {\n var segment = pendingSegments[type].shift();\n if (segment.timestampOffset) {\n // For MPEG audio stream in MSE, if unbuffered-seeking occurred\n // We need explicitly set timestampOffset to the desired point in timeline for mpeg SourceBuffer.\n var currentOffset = this._sourceBuffers[type].timestampOffset;\n var targetOffset = segment.timestampOffset / 1000; // in seconds\n var delta = Math.abs(currentOffset - targetOffset);\n if (delta > 0.1) { // If time delta > 100ms\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, \"Update MPEG audio timestampOffset from \" + currentOffset + \" to \" + targetOffset);\n this._sourceBuffers[type].timestampOffset = targetOffset;\n }\n delete segment.timestampOffset;\n }\n if (!segment.data || segment.data.byteLength === 0) {\n // Ignore empty buffer\n continue;\n }\n try {\n this._sourceBuffers[type].appendBuffer(segment.data);\n this._isBufferFull = false;\n if (type === 'video' && segment.hasOwnProperty('info')) {\n this._idrList.appendArray(segment.info.syncPoints);\n }\n }\n catch (error) {\n this._pendingSegments[type].unshift(segment);\n if (error.code === 22) { // QuotaExceededError\n /* Notice that FireFox may not throw QuotaExceededError if SourceBuffer is full\n * Currently we can only do lazy-load to avoid SourceBuffer become scattered.\n * SourceBuffer eviction policy may be changed in future version of FireFox.\n *\n * Related issues:\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1279885\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1280023\n */\n // report buffer full, abort network IO\n if (!this._isBufferFull) {\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__.default.BUFFER_FULL);\n }\n this._isBufferFull = true;\n }\n else {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, error.message);\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__.default.ERROR, { code: error.code, msg: error.message });\n }\n }\n }\n }\n };\n MSEController.prototype._onSourceOpen = function () {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, 'MediaSource onSourceOpen');\n this._mediaSource.removeEventListener('sourceopen', this.e.onSourceOpen);\n // deferred sourcebuffer creation / initialization\n if (this._pendingSourceBufferInit.length > 0) {\n var pendings = this._pendingSourceBufferInit;\n while (pendings.length) {\n var segment = pendings.shift();\n this.appendInitSegment(segment, true);\n }\n }\n // there may be some pending media segments, append them\n if (this._hasPendingSegments()) {\n this._doAppendSegments();\n }\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__.default.SOURCE_OPEN);\n };\n MSEController.prototype._onSourceEnded = function () {\n // fired on endOfStream\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, 'MediaSource onSourceEnded');\n };\n MSEController.prototype._onSourceClose = function () {\n // fired on detaching from media element\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, 'MediaSource onSourceClose');\n if (this._mediaSource && this.e != null) {\n this._mediaSource.removeEventListener('sourceopen', this.e.onSourceOpen);\n this._mediaSource.removeEventListener('sourceended', this.e.onSourceEnded);\n this._mediaSource.removeEventListener('sourceclose', this.e.onSourceClose);\n }\n };\n MSEController.prototype._hasPendingSegments = function () {\n var ps = this._pendingSegments;\n return ps.video.length > 0 || ps.audio.length > 0;\n };\n MSEController.prototype._hasPendingRemoveRanges = function () {\n var prr = this._pendingRemoveRanges;\n return prr.video.length > 0 || prr.audio.length > 0;\n };\n MSEController.prototype._onSourceBufferUpdateEnd = function () {\n if (this._requireSetMediaDuration) {\n this._updateMediaSourceDuration();\n }\n else if (this._hasPendingRemoveRanges()) {\n this._doRemoveRanges();\n }\n else if (this._hasPendingSegments()) {\n this._doAppendSegments();\n }\n else if (this._hasPendingEos) {\n this.endOfStream();\n }\n this._emitter.emit(_mse_events_js__WEBPACK_IMPORTED_MODULE_3__.default.UPDATE_END);\n };\n MSEController.prototype._onSourceBufferError = function (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, \"SourceBuffer Error: \" + e);\n // this error might not always be fatal, just ignore it\n };\n return MSEController;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (MSEController);\n\n\n/***/ }),\n\n/***/ \"./src/core/mse-events.js\":\n/*!********************************!*\\\n !*** ./src/core/mse-events.js ***!\n \\********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MSEEvents = {\n ERROR: 'error',\n SOURCE_OPEN: 'source_open',\n UPDATE_END: 'update_end',\n BUFFER_FULL: 'buffer_full'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (MSEEvents);\n\n\n/***/ }),\n\n/***/ \"./src/core/transmuxer.js\":\n/*!********************************!*\\\n !*** ./src/core/transmuxer.js ***!\n \\********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! webworkify-webpack */ \"./node_modules/webworkify-webpack/index.js\");\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(webworkify_webpack__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/logging-control.js */ \"./src/utils/logging-control.js\");\n/* harmony import */ var _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./transmuxing-controller.js */ \"./src/core/transmuxing-controller.js\");\n/* harmony import */ var _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./transmuxing-events.js */ \"./src/core/transmuxing-events.js\");\n/* harmony import */ var _media_info_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./media-info.js */ \"./src/core/media-info.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\nvar Transmuxer = /** @class */ (function () {\n function Transmuxer(mediaDataSource, config) {\n this.TAG = 'Transmuxer';\n this._emitter = new (events__WEBPACK_IMPORTED_MODULE_0___default())();\n if (config.enableWorker && typeof (Worker) !== 'undefined') {\n try {\n this._worker = webworkify_webpack__WEBPACK_IMPORTED_MODULE_1___default()(/*require.resolve*/(/*! ./transmuxing-worker */ \"./src/core/transmuxing-worker.js\"));\n this._workerDestroying = false;\n this._worker.addEventListener('message', this._onWorkerMessage.bind(this));\n this._worker.postMessage({ cmd: 'init', param: [mediaDataSource, config] });\n this.e = {\n onLoggingConfigChanged: this._onLoggingConfigChanged.bind(this)\n };\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_3__.default.registerListener(this.e.onLoggingConfigChanged);\n this._worker.postMessage({ cmd: 'logging_config', param: _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_3__.default.getConfig() });\n }\n catch (error) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_2__.default.e(this.TAG, 'Error while initialize transmuxing worker, fallback to inline transmuxing');\n this._worker = null;\n this._controller = new _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_4__.default(mediaDataSource, config);\n }\n }\n else {\n this._controller = new _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_4__.default(mediaDataSource, config);\n }\n if (this._controller) {\n var ctl = this._controller;\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.IO_ERROR, this._onIOError.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.DEMUX_ERROR, this._onDemuxError.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.INIT_SEGMENT, this._onInitSegment.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.MEDIA_SEGMENT, this._onMediaSegment.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.LOADING_COMPLETE, this._onLoadingComplete.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.RECOVERED_EARLY_EOF, this._onRecoveredEarlyEof.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.MEDIA_INFO, this._onMediaInfo.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.METADATA_ARRIVED, this._onMetaDataArrived.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.SCRIPTDATA_ARRIVED, this._onScriptDataArrived.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.STATISTICS_INFO, this._onStatisticsInfo.bind(this));\n ctl.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.RECOMMEND_SEEKPOINT, this._onRecommendSeekpoint.bind(this));\n }\n }\n Transmuxer.prototype.destroy = function () {\n if (this._worker) {\n if (!this._workerDestroying) {\n this._workerDestroying = true;\n this._worker.postMessage({ cmd: 'destroy' });\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_3__.default.removeListener(this.e.onLoggingConfigChanged);\n this.e = null;\n }\n }\n else {\n this._controller.destroy();\n this._controller = null;\n }\n this._emitter.removeAllListeners();\n this._emitter = null;\n };\n Transmuxer.prototype.on = function (event, listener) {\n this._emitter.addListener(event, listener);\n };\n Transmuxer.prototype.off = function (event, listener) {\n this._emitter.removeListener(event, listener);\n };\n Transmuxer.prototype.hasWorker = function () {\n return this._worker != null;\n };\n Transmuxer.prototype.open = function () {\n if (this._worker) {\n this._worker.postMessage({ cmd: 'start' });\n }\n else {\n this._controller.start();\n }\n };\n Transmuxer.prototype.close = function () {\n if (this._worker) {\n this._worker.postMessage({ cmd: 'stop' });\n }\n else {\n this._controller.stop();\n }\n };\n Transmuxer.prototype.seek = function (milliseconds) {\n if (this._worker) {\n this._worker.postMessage({ cmd: 'seek', param: milliseconds });\n }\n else {\n this._controller.seek(milliseconds);\n }\n };\n Transmuxer.prototype.pause = function () {\n if (this._worker) {\n this._worker.postMessage({ cmd: 'pause' });\n }\n else {\n this._controller.pause();\n }\n };\n Transmuxer.prototype.resume = function () {\n if (this._worker) {\n this._worker.postMessage({ cmd: 'resume' });\n }\n else {\n this._controller.resume();\n }\n };\n Transmuxer.prototype._onInitSegment = function (type, initSegment) {\n var _this = this;\n // do async invoke\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.INIT_SEGMENT, type, initSegment);\n });\n };\n Transmuxer.prototype._onMediaSegment = function (type, mediaSegment) {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.MEDIA_SEGMENT, type, mediaSegment);\n });\n };\n Transmuxer.prototype._onLoadingComplete = function () {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.LOADING_COMPLETE);\n });\n };\n Transmuxer.prototype._onRecoveredEarlyEof = function () {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.RECOVERED_EARLY_EOF);\n });\n };\n Transmuxer.prototype._onMediaInfo = function (mediaInfo) {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.MEDIA_INFO, mediaInfo);\n });\n };\n Transmuxer.prototype._onMetaDataArrived = function (metadata) {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.METADATA_ARRIVED, metadata);\n });\n };\n Transmuxer.prototype._onScriptDataArrived = function (data) {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.SCRIPTDATA_ARRIVED, data);\n });\n };\n Transmuxer.prototype._onStatisticsInfo = function (statisticsInfo) {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.STATISTICS_INFO, statisticsInfo);\n });\n };\n Transmuxer.prototype._onIOError = function (type, info) {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.IO_ERROR, type, info);\n });\n };\n Transmuxer.prototype._onDemuxError = function (type, info) {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.DEMUX_ERROR, type, info);\n });\n };\n Transmuxer.prototype._onRecommendSeekpoint = function (milliseconds) {\n var _this = this;\n Promise.resolve().then(function () {\n _this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.RECOMMEND_SEEKPOINT, milliseconds);\n });\n };\n Transmuxer.prototype._onLoggingConfigChanged = function (config) {\n if (this._worker) {\n this._worker.postMessage({ cmd: 'logging_config', param: config });\n }\n };\n Transmuxer.prototype._onWorkerMessage = function (e) {\n var message = e.data;\n var data = message.data;\n if (message.msg === 'destroyed' || this._workerDestroying) {\n this._workerDestroying = false;\n this._worker.terminate();\n this._worker = null;\n return;\n }\n switch (message.msg) {\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.INIT_SEGMENT:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.MEDIA_SEGMENT:\n this._emitter.emit(message.msg, data.type, data.data);\n break;\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.LOADING_COMPLETE:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.RECOVERED_EARLY_EOF:\n this._emitter.emit(message.msg);\n break;\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.MEDIA_INFO:\n Object.setPrototypeOf(data, _media_info_js__WEBPACK_IMPORTED_MODULE_6__.default.prototype);\n this._emitter.emit(message.msg, data);\n break;\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.METADATA_ARRIVED:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.SCRIPTDATA_ARRIVED:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.STATISTICS_INFO:\n this._emitter.emit(message.msg, data);\n break;\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.IO_ERROR:\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.DEMUX_ERROR:\n this._emitter.emit(message.msg, data.type, data.info);\n break;\n case _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.RECOMMEND_SEEKPOINT:\n this._emitter.emit(message.msg, data);\n break;\n case 'logcat_callback':\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_2__.default.emitter.emit('log', data.type, data.logcat);\n break;\n default:\n break;\n }\n };\n return Transmuxer;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (Transmuxer);\n\n\n/***/ }),\n\n/***/ \"./src/core/transmuxing-controller.js\":\n/*!********************************************!*\\\n !*** ./src/core/transmuxing-controller.js ***!\n \\********************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/utils/browser.js\");\n/* harmony import */ var _media_info_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./media-info.js */ \"./src/core/media-info.js\");\n/* harmony import */ var _demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../demux/flv-demuxer.js */ \"./src/demux/flv-demuxer.js\");\n/* harmony import */ var _remux_mp4_remuxer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../remux/mp4-remuxer.js */ \"./src/remux/mp4-remuxer.js\");\n/* harmony import */ var _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../demux/demux-errors.js */ \"./src/demux/demux-errors.js\");\n/* harmony import */ var _io_io_controller_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../io/io-controller.js */ \"./src/io/io-controller.js\");\n/* harmony import */ var _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./transmuxing-events.js */ \"./src/core/transmuxing-events.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\n\n// Transmuxing (IO, Demuxing, Remuxing) controller, with multipart support\nvar TransmuxingController = /** @class */ (function () {\n function TransmuxingController(mediaDataSource, config) {\n this.TAG = 'TransmuxingController';\n this._emitter = new (events__WEBPACK_IMPORTED_MODULE_0___default())();\n this._config = config;\n // treat single part media as multipart media, which has only one segment\n if (!mediaDataSource.segments) {\n mediaDataSource.segments = [{\n duration: mediaDataSource.duration,\n filesize: mediaDataSource.filesize,\n url: mediaDataSource.url\n }];\n }\n // fill in default IO params if not exists\n if (typeof mediaDataSource.cors !== 'boolean') {\n mediaDataSource.cors = true;\n }\n if (typeof mediaDataSource.withCredentials !== 'boolean') {\n mediaDataSource.withCredentials = false;\n }\n this._mediaDataSource = mediaDataSource;\n this._currentSegmentIndex = 0;\n var totalDuration = 0;\n this._mediaDataSource.segments.forEach(function (segment) {\n // timestampBase for each segment, and calculate total duration\n segment.timestampBase = totalDuration;\n totalDuration += segment.duration;\n // params needed by IOController\n segment.cors = mediaDataSource.cors;\n segment.withCredentials = mediaDataSource.withCredentials;\n // referrer policy control, if exist\n if (config.referrerPolicy) {\n segment.referrerPolicy = config.referrerPolicy;\n }\n });\n if (!isNaN(totalDuration) && this._mediaDataSource.duration !== totalDuration) {\n this._mediaDataSource.duration = totalDuration;\n }\n this._mediaInfo = null;\n this._demuxer = null;\n this._remuxer = null;\n this._ioctl = null;\n this._pendingSeekTime = null;\n this._pendingResolveSeekPoint = null;\n this._statisticsReporter = null;\n }\n TransmuxingController.prototype.destroy = function () {\n this._mediaInfo = null;\n this._mediaDataSource = null;\n if (this._statisticsReporter) {\n this._disableStatisticsReporter();\n }\n if (this._ioctl) {\n this._ioctl.destroy();\n this._ioctl = null;\n }\n if (this._demuxer) {\n this._demuxer.destroy();\n this._demuxer = null;\n }\n if (this._remuxer) {\n this._remuxer.destroy();\n this._remuxer = null;\n }\n this._emitter.removeAllListeners();\n this._emitter = null;\n };\n TransmuxingController.prototype.on = function (event, listener) {\n this._emitter.addListener(event, listener);\n };\n TransmuxingController.prototype.off = function (event, listener) {\n this._emitter.removeListener(event, listener);\n };\n TransmuxingController.prototype.start = function () {\n this._loadSegment(0);\n this._enableStatisticsReporter();\n };\n TransmuxingController.prototype._loadSegment = function (segmentIndex, optionalFrom) {\n this._currentSegmentIndex = segmentIndex;\n var dataSource = this._mediaDataSource.segments[segmentIndex];\n var ioctl = this._ioctl = new _io_io_controller_js__WEBPACK_IMPORTED_MODULE_7__.default(dataSource, this._config, segmentIndex);\n ioctl.onError = this._onIOException.bind(this);\n ioctl.onSeeked = this._onIOSeeked.bind(this);\n ioctl.onComplete = this._onIOComplete.bind(this);\n ioctl.onRedirect = this._onIORedirect.bind(this);\n ioctl.onRecoveredEarlyEof = this._onIORecoveredEarlyEof.bind(this);\n if (optionalFrom) {\n this._demuxer.bindDataSource(this._ioctl);\n }\n else {\n ioctl.onDataArrival = this._onInitChunkArrival.bind(this);\n }\n ioctl.open(optionalFrom);\n };\n TransmuxingController.prototype.stop = function () {\n this._internalAbort();\n this._disableStatisticsReporter();\n };\n TransmuxingController.prototype._internalAbort = function () {\n if (this._ioctl) {\n this._ioctl.destroy();\n this._ioctl = null;\n }\n };\n TransmuxingController.prototype.pause = function () {\n if (this._ioctl && this._ioctl.isWorking()) {\n this._ioctl.pause();\n this._disableStatisticsReporter();\n }\n };\n TransmuxingController.prototype.resume = function () {\n if (this._ioctl && this._ioctl.isPaused()) {\n this._ioctl.resume();\n this._enableStatisticsReporter();\n }\n };\n TransmuxingController.prototype.seek = function (milliseconds) {\n if (this._mediaInfo == null || !this._mediaInfo.isSeekable()) {\n return;\n }\n var targetSegmentIndex = this._searchSegmentIndexContains(milliseconds);\n if (targetSegmentIndex === this._currentSegmentIndex) {\n // intra-segment seeking\n var segmentInfo = this._mediaInfo.segments[targetSegmentIndex];\n if (segmentInfo == undefined) {\n // current segment loading started, but mediainfo hasn't received yet\n // wait for the metadata loaded, then seek to expected position\n this._pendingSeekTime = milliseconds;\n }\n else {\n var keyframe = segmentInfo.getNearestKeyframe(milliseconds);\n this._remuxer.seek(keyframe.milliseconds);\n this._ioctl.seek(keyframe.fileposition);\n // Will be resolved in _onRemuxerMediaSegmentArrival()\n this._pendingResolveSeekPoint = keyframe.milliseconds;\n }\n }\n else {\n // cross-segment seeking\n var targetSegmentInfo = this._mediaInfo.segments[targetSegmentIndex];\n if (targetSegmentInfo == undefined) {\n // target segment hasn't been loaded. We need metadata then seek to expected time\n this._pendingSeekTime = milliseconds;\n this._internalAbort();\n this._remuxer.seek();\n this._remuxer.insertDiscontinuity();\n this._loadSegment(targetSegmentIndex);\n // Here we wait for the metadata loaded, then seek to expected position\n }\n else {\n // We have target segment's metadata, direct seek to target position\n var keyframe = targetSegmentInfo.getNearestKeyframe(milliseconds);\n this._internalAbort();\n this._remuxer.seek(milliseconds);\n this._remuxer.insertDiscontinuity();\n this._demuxer.resetMediaInfo();\n this._demuxer.timestampBase = this._mediaDataSource.segments[targetSegmentIndex].timestampBase;\n this._loadSegment(targetSegmentIndex, keyframe.fileposition);\n this._pendingResolveSeekPoint = keyframe.milliseconds;\n this._reportSegmentMediaInfo(targetSegmentIndex);\n }\n }\n this._enableStatisticsReporter();\n };\n TransmuxingController.prototype._searchSegmentIndexContains = function (milliseconds) {\n var segments = this._mediaDataSource.segments;\n var idx = segments.length - 1;\n for (var i = 0; i < segments.length; i++) {\n if (milliseconds < segments[i].timestampBase) {\n idx = i - 1;\n break;\n }\n }\n return idx;\n };\n TransmuxingController.prototype._onInitChunkArrival = function (data, byteStart) {\n var _this = this;\n var probeData = null;\n var consumed = 0;\n if (byteStart > 0) {\n // IOController seeked immediately after opened, byteStart > 0 callback may received\n this._demuxer.bindDataSource(this._ioctl);\n this._demuxer.timestampBase = this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase;\n consumed = this._demuxer.parseChunks(data, byteStart);\n }\n else if ((probeData = _demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_4__.default.probe(data)).match) {\n // Always create new FLVDemuxer\n this._demuxer = new _demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_4__.default(probeData, this._config);\n if (!this._remuxer) {\n this._remuxer = new _remux_mp4_remuxer_js__WEBPACK_IMPORTED_MODULE_5__.default(this._config);\n }\n var mds = this._mediaDataSource;\n if (mds.duration != undefined && !isNaN(mds.duration)) {\n this._demuxer.overridedDuration = mds.duration;\n }\n if (typeof mds.hasAudio === 'boolean') {\n this._demuxer.overridedHasAudio = mds.hasAudio;\n }\n if (typeof mds.hasVideo === 'boolean') {\n this._demuxer.overridedHasVideo = mds.hasVideo;\n }\n this._demuxer.timestampBase = mds.segments[this._currentSegmentIndex].timestampBase;\n this._demuxer.onError = this._onDemuxException.bind(this);\n this._demuxer.onMediaInfo = this._onMediaInfo.bind(this);\n this._demuxer.onMetaDataArrived = this._onMetaDataArrived.bind(this);\n this._demuxer.onScriptDataArrived = this._onScriptDataArrived.bind(this);\n this._remuxer.bindDataSource(this._demuxer\n .bindDataSource(this._ioctl));\n this._remuxer.onInitSegment = this._onRemuxerInitSegmentArrival.bind(this);\n this._remuxer.onMediaSegment = this._onRemuxerMediaSegmentArrival.bind(this);\n consumed = this._demuxer.parseChunks(data, byteStart);\n }\n else {\n probeData = null;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, 'Non-FLV, Unsupported media type!');\n Promise.resolve().then(function () {\n _this._internalAbort();\n });\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.DEMUX_ERROR, _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_6__.default.FORMAT_UNSUPPORTED, 'Non-FLV, Unsupported media type');\n consumed = 0;\n }\n return consumed;\n };\n TransmuxingController.prototype._onMediaInfo = function (mediaInfo) {\n var _this = this;\n if (this._mediaInfo == null) {\n // Store first segment's mediainfo as global mediaInfo\n this._mediaInfo = Object.assign({}, mediaInfo);\n this._mediaInfo.keyframesIndex = null;\n this._mediaInfo.segments = [];\n this._mediaInfo.segmentCount = this._mediaDataSource.segments.length;\n Object.setPrototypeOf(this._mediaInfo, _media_info_js__WEBPACK_IMPORTED_MODULE_3__.default.prototype);\n }\n var segmentInfo = Object.assign({}, mediaInfo);\n Object.setPrototypeOf(segmentInfo, _media_info_js__WEBPACK_IMPORTED_MODULE_3__.default.prototype);\n this._mediaInfo.segments[this._currentSegmentIndex] = segmentInfo;\n // notify mediaInfo update\n this._reportSegmentMediaInfo(this._currentSegmentIndex);\n if (this._pendingSeekTime != null) {\n Promise.resolve().then(function () {\n var target = _this._pendingSeekTime;\n _this._pendingSeekTime = null;\n _this.seek(target);\n });\n }\n };\n TransmuxingController.prototype._onMetaDataArrived = function (metadata) {\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.METADATA_ARRIVED, metadata);\n };\n TransmuxingController.prototype._onScriptDataArrived = function (data) {\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.SCRIPTDATA_ARRIVED, data);\n };\n TransmuxingController.prototype._onIOSeeked = function () {\n this._remuxer.insertDiscontinuity();\n };\n TransmuxingController.prototype._onIOComplete = function (extraData) {\n var segmentIndex = extraData;\n var nextSegmentIndex = segmentIndex + 1;\n if (nextSegmentIndex < this._mediaDataSource.segments.length) {\n this._internalAbort();\n this._remuxer.flushStashedSamples();\n this._loadSegment(nextSegmentIndex);\n }\n else {\n this._remuxer.flushStashedSamples();\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.LOADING_COMPLETE);\n this._disableStatisticsReporter();\n }\n };\n TransmuxingController.prototype._onIORedirect = function (redirectedURL) {\n var segmentIndex = this._ioctl.extraData;\n this._mediaDataSource.segments[segmentIndex].redirectedURL = redirectedURL;\n };\n TransmuxingController.prototype._onIORecoveredEarlyEof = function () {\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.RECOVERED_EARLY_EOF);\n };\n TransmuxingController.prototype._onIOException = function (type, info) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, \"IOException: type = \" + type + \", code = \" + info.code + \", msg = \" + info.msg);\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.IO_ERROR, type, info);\n this._disableStatisticsReporter();\n };\n TransmuxingController.prototype._onDemuxException = function (type, info) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.e(this.TAG, \"DemuxException: type = \" + type + \", info = \" + info);\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.DEMUX_ERROR, type, info);\n };\n TransmuxingController.prototype._onRemuxerInitSegmentArrival = function (type, initSegment) {\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.INIT_SEGMENT, type, initSegment);\n };\n TransmuxingController.prototype._onRemuxerMediaSegmentArrival = function (type, mediaSegment) {\n if (this._pendingSeekTime != null) {\n // Media segments after new-segment cross-seeking should be dropped.\n return;\n }\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.MEDIA_SEGMENT, type, mediaSegment);\n // Resolve pending seekPoint\n if (this._pendingResolveSeekPoint != null && type === 'video') {\n var syncPoints = mediaSegment.info.syncPoints;\n var seekpoint = this._pendingResolveSeekPoint;\n this._pendingResolveSeekPoint = null;\n // Safari: Pass PTS for recommend_seekpoint\n if (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.safari && syncPoints.length > 0 && syncPoints[0].originalDts === seekpoint) {\n seekpoint = syncPoints[0].pts;\n }\n // else: use original DTS (keyframe.milliseconds)\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.RECOMMEND_SEEKPOINT, seekpoint);\n }\n };\n TransmuxingController.prototype._enableStatisticsReporter = function () {\n if (this._statisticsReporter == null) {\n this._statisticsReporter = self.setInterval(this._reportStatisticsInfo.bind(this), this._config.statisticsInfoReportInterval);\n }\n };\n TransmuxingController.prototype._disableStatisticsReporter = function () {\n if (this._statisticsReporter) {\n self.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n };\n TransmuxingController.prototype._reportSegmentMediaInfo = function (segmentIndex) {\n var segmentInfo = this._mediaInfo.segments[segmentIndex];\n var exportInfo = Object.assign({}, segmentInfo);\n exportInfo.duration = this._mediaInfo.duration;\n exportInfo.segmentCount = this._mediaInfo.segmentCount;\n delete exportInfo.segments;\n delete exportInfo.keyframesIndex;\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.MEDIA_INFO, exportInfo);\n };\n TransmuxingController.prototype._reportStatisticsInfo = function () {\n var info = {};\n info.url = this._ioctl.currentURL;\n info.hasRedirect = this._ioctl.hasRedirect;\n if (info.hasRedirect) {\n info.redirectedURL = this._ioctl.currentRedirectedURL;\n }\n info.speed = this._ioctl.currentSpeed;\n info.loaderType = this._ioctl.loaderType;\n info.currentSegmentIndex = this._currentSegmentIndex;\n info.totalSegmentCount = this._mediaDataSource.segments.length;\n this._emitter.emit(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__.default.STATISTICS_INFO, info);\n };\n return TransmuxingController;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (TransmuxingController);\n\n\n/***/ }),\n\n/***/ \"./src/core/transmuxing-events.js\":\n/*!****************************************!*\\\n !*** ./src/core/transmuxing-events.js ***!\n \\****************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar TransmuxingEvents = {\n IO_ERROR: 'io_error',\n DEMUX_ERROR: 'demux_error',\n INIT_SEGMENT: 'init_segment',\n MEDIA_SEGMENT: 'media_segment',\n LOADING_COMPLETE: 'loading_complete',\n RECOVERED_EARLY_EOF: 'recovered_early_eof',\n MEDIA_INFO: 'media_info',\n METADATA_ARRIVED: 'metadata_arrived',\n SCRIPTDATA_ARRIVED: 'scriptdata_arrived',\n STATISTICS_INFO: 'statistics_info',\n RECOMMEND_SEEKPOINT: 'recommend_seekpoint'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TransmuxingEvents);\n\n\n/***/ }),\n\n/***/ \"./src/core/transmuxing-worker.js\":\n/*!****************************************!*\\\n !*** ./src/core/transmuxing-worker.js ***!\n \\****************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logging-control.js */ \"./src/utils/logging-control.js\");\n/* harmony import */ var _utils_polyfill_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/polyfill.js */ \"./src/utils/polyfill.js\");\n/* harmony import */ var _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transmuxing-controller.js */ \"./src/core/transmuxing-controller.js\");\n/* harmony import */ var _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transmuxing-events.js */ \"./src/core/transmuxing-events.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n/* post message to worker:\n data: {\n cmd: string\n param: any\n }\n\n receive message from worker:\n data: {\n msg: string,\n data: any\n }\n */\nvar TransmuxingWorker = function (self) {\n var TAG = 'TransmuxingWorker';\n var controller = null;\n var logcatListener = onLogcatCallback.bind(this);\n _utils_polyfill_js__WEBPACK_IMPORTED_MODULE_1__.default.install();\n self.addEventListener('message', function (e) {\n switch (e.data.cmd) {\n case 'init':\n controller = new _transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_2__.default(e.data.param[0], e.data.param[1]);\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.IO_ERROR, onIOError.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.DEMUX_ERROR, onDemuxError.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.INIT_SEGMENT, onInitSegment.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.MEDIA_SEGMENT, onMediaSegment.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.LOADING_COMPLETE, onLoadingComplete.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.RECOVERED_EARLY_EOF, onRecoveredEarlyEof.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.MEDIA_INFO, onMediaInfo.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.METADATA_ARRIVED, onMetaDataArrived.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.SCRIPTDATA_ARRIVED, onScriptDataArrived.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.STATISTICS_INFO, onStatisticsInfo.bind(this));\n controller.on(_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.RECOMMEND_SEEKPOINT, onRecommendSeekpoint.bind(this));\n break;\n case 'destroy':\n if (controller) {\n controller.destroy();\n controller = null;\n }\n self.postMessage({ msg: 'destroyed' });\n break;\n case 'start':\n controller.start();\n break;\n case 'stop':\n controller.stop();\n break;\n case 'seek':\n controller.seek(e.data.param);\n break;\n case 'pause':\n controller.pause();\n break;\n case 'resume':\n controller.resume();\n break;\n case 'logging_config': {\n var config = e.data.param;\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_0__.default.applyConfig(config);\n if (config.enableCallback === true) {\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_0__.default.addLogListener(logcatListener);\n }\n else {\n _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_0__.default.removeLogListener(logcatListener);\n }\n break;\n }\n }\n });\n function onInitSegment(type, initSegment) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.INIT_SEGMENT,\n data: {\n type: type,\n data: initSegment\n }\n };\n self.postMessage(obj, [initSegment.data]); // data: ArrayBuffer\n }\n function onMediaSegment(type, mediaSegment) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.MEDIA_SEGMENT,\n data: {\n type: type,\n data: mediaSegment\n }\n };\n self.postMessage(obj, [mediaSegment.data]); // data: ArrayBuffer\n }\n function onLoadingComplete() {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.LOADING_COMPLETE\n };\n self.postMessage(obj);\n }\n function onRecoveredEarlyEof() {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.RECOVERED_EARLY_EOF\n };\n self.postMessage(obj);\n }\n function onMediaInfo(mediaInfo) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.MEDIA_INFO,\n data: mediaInfo\n };\n self.postMessage(obj);\n }\n function onMetaDataArrived(metadata) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.METADATA_ARRIVED,\n data: metadata\n };\n self.postMessage(obj);\n }\n function onScriptDataArrived(data) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.SCRIPTDATA_ARRIVED,\n data: data\n };\n self.postMessage(obj);\n }\n function onStatisticsInfo(statInfo) {\n var obj = {\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.STATISTICS_INFO,\n data: statInfo\n };\n self.postMessage(obj);\n }\n function onIOError(type, info) {\n self.postMessage({\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.IO_ERROR,\n data: {\n type: type,\n info: info\n }\n });\n }\n function onDemuxError(type, info) {\n self.postMessage({\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.DEMUX_ERROR,\n data: {\n type: type,\n info: info\n }\n });\n }\n function onRecommendSeekpoint(milliseconds) {\n self.postMessage({\n msg: _transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__.default.RECOMMEND_SEEKPOINT,\n data: milliseconds\n });\n }\n function onLogcatCallback(type, str) {\n self.postMessage({\n msg: 'logcat_callback',\n data: {\n type: type,\n logcat: str\n }\n });\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TransmuxingWorker);\n\n\n/***/ }),\n\n/***/ \"./src/demux/amf-parser.js\":\n/*!*********************************!*\\\n !*** ./src/demux/amf-parser.js ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _utils_utf8_conv_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/utf8-conv.js */ \"./src/utils/utf8-conv.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\nvar le = (function () {\n var buf = new ArrayBuffer(2);\n (new DataView(buf)).setInt16(0, 256, true); // little-endian write\n return (new Int16Array(buf))[0] === 256; // platform-spec read, if equal then LE\n})();\nvar AMF = /** @class */ (function () {\n function AMF() {\n }\n AMF.parseScriptData = function (arrayBuffer, dataOffset, dataSize) {\n var data = {};\n try {\n var name_1 = AMF.parseValue(arrayBuffer, dataOffset, dataSize);\n var value = AMF.parseValue(arrayBuffer, dataOffset + name_1.size, dataSize - name_1.size);\n data[name_1.data] = value.data;\n }\n catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.e('AMF', e.toString());\n }\n return data;\n };\n AMF.parseObject = function (arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 3) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.IllegalStateException('Data not enough when parse ScriptDataObject');\n }\n var name = AMF.parseString(arrayBuffer, dataOffset, dataSize);\n var value = AMF.parseValue(arrayBuffer, dataOffset + name.size, dataSize - name.size);\n var isObjectEnd = value.objectEnd;\n return {\n data: {\n name: name.data,\n value: value.data\n },\n size: name.size + value.size,\n objectEnd: isObjectEnd\n };\n };\n AMF.parseVariable = function (arrayBuffer, dataOffset, dataSize) {\n return AMF.parseObject(arrayBuffer, dataOffset, dataSize);\n };\n AMF.parseString = function (arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 2) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.IllegalStateException('Data not enough when parse String');\n }\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var length = v.getUint16(0, !le);\n var str;\n if (length > 0) {\n str = (0,_utils_utf8_conv_js__WEBPACK_IMPORTED_MODULE_1__.default)(new Uint8Array(arrayBuffer, dataOffset + 2, length));\n }\n else {\n str = '';\n }\n return {\n data: str,\n size: 2 + length\n };\n };\n AMF.parseLongString = function (arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 4) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.IllegalStateException('Data not enough when parse LongString');\n }\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var length = v.getUint32(0, !le);\n var str;\n if (length > 0) {\n str = (0,_utils_utf8_conv_js__WEBPACK_IMPORTED_MODULE_1__.default)(new Uint8Array(arrayBuffer, dataOffset + 4, length));\n }\n else {\n str = '';\n }\n return {\n data: str,\n size: 4 + length\n };\n };\n AMF.parseDate = function (arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 10) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.IllegalStateException('Data size invalid when parse Date');\n }\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var timestamp = v.getFloat64(0, !le);\n var localTimeOffset = v.getInt16(8, !le);\n timestamp += localTimeOffset * 60 * 1000; // get UTC time\n return {\n data: new Date(timestamp),\n size: 8 + 2\n };\n };\n AMF.parseValue = function (arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 1) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.IllegalStateException('Data not enough when parse Value');\n }\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var offset = 1;\n var type = v.getUint8(0);\n var value;\n var objectEnd = false;\n try {\n switch (type) {\n case 0: // Number(Double) type\n value = v.getFloat64(1, !le);\n offset += 8;\n break;\n case 1: { // Boolean type\n var b = v.getUint8(1);\n value = b ? true : false;\n offset += 1;\n break;\n }\n case 2: { // String type\n var amfstr = AMF.parseString(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = amfstr.data;\n offset += amfstr.size;\n break;\n }\n case 3: { // Object(s) type\n value = {};\n var terminal = 0; // workaround for malformed Objects which has missing ScriptDataObjectEnd\n if ((v.getUint32(dataSize - 4, !le) & 0x00FFFFFF) === 9) {\n terminal = 3;\n }\n while (offset < dataSize - 4) { // 4 === type(UI8) + ScriptDataObjectEnd(UI24)\n var amfobj = AMF.parseObject(arrayBuffer, dataOffset + offset, dataSize - offset - terminal);\n if (amfobj.objectEnd)\n break;\n value[amfobj.data.name] = amfobj.data.value;\n offset += amfobj.size;\n }\n if (offset <= dataSize - 3) {\n var marker = v.getUint32(offset - 1, !le) & 0x00FFFFFF;\n if (marker === 9) {\n offset += 3;\n }\n }\n break;\n }\n case 8: { // ECMA array type (Mixed array)\n value = {};\n offset += 4; // ECMAArrayLength(UI32)\n var terminal = 0; // workaround for malformed MixedArrays which has missing ScriptDataObjectEnd\n if ((v.getUint32(dataSize - 4, !le) & 0x00FFFFFF) === 9) {\n terminal = 3;\n }\n while (offset < dataSize - 8) { // 8 === type(UI8) + ECMAArrayLength(UI32) + ScriptDataVariableEnd(UI24)\n var amfvar = AMF.parseVariable(arrayBuffer, dataOffset + offset, dataSize - offset - terminal);\n if (amfvar.objectEnd)\n break;\n value[amfvar.data.name] = amfvar.data.value;\n offset += amfvar.size;\n }\n if (offset <= dataSize - 3) {\n var marker = v.getUint32(offset - 1, !le) & 0x00FFFFFF;\n if (marker === 9) {\n offset += 3;\n }\n }\n break;\n }\n case 9: // ScriptDataObjectEnd\n value = undefined;\n offset = 1;\n objectEnd = true;\n break;\n case 10: { // Strict array type\n // ScriptDataValue[n]. NOTE: according to video_file_format_spec_v10_1.pdf\n value = [];\n var strictArrayLength = v.getUint32(1, !le);\n offset += 4;\n for (var i = 0; i < strictArrayLength; i++) {\n var val = AMF.parseValue(arrayBuffer, dataOffset + offset, dataSize - offset);\n value.push(val.data);\n offset += val.size;\n }\n break;\n }\n case 11: { // Date type\n var date = AMF.parseDate(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = date.data;\n offset += date.size;\n break;\n }\n case 12: { // Long string type\n var amfLongStr = AMF.parseString(arrayBuffer, dataOffset + 1, dataSize - 1);\n value = amfLongStr.data;\n offset += amfLongStr.size;\n break;\n }\n default:\n // ignore and skip\n offset = dataSize;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w('AMF', 'Unsupported AMF value type ' + type);\n }\n }\n catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.e('AMF', e.toString());\n }\n return {\n data: value,\n size: offset,\n objectEnd: objectEnd\n };\n };\n return AMF;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (AMF);\n\n\n/***/ }),\n\n/***/ \"./src/demux/demux-errors.js\":\n/*!***********************************!*\\\n !*** ./src/demux/demux-errors.js ***!\n \\***********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DemuxErrors = {\n OK: 'OK',\n FORMAT_ERROR: 'FormatError',\n FORMAT_UNSUPPORTED: 'FormatUnsupported',\n CODEC_UNSUPPORTED: 'CodecUnsupported'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (DemuxErrors);\n\n\n/***/ }),\n\n/***/ \"./src/demux/exp-golomb.js\":\n/*!*********************************!*\\\n !*** ./src/demux/exp-golomb.js ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Exponential-Golomb buffer decoder\nvar ExpGolomb = /** @class */ (function () {\n function ExpGolomb(uint8array) {\n this.TAG = 'ExpGolomb';\n this._buffer = uint8array;\n this._buffer_index = 0;\n this._total_bytes = uint8array.byteLength;\n this._total_bits = uint8array.byteLength * 8;\n this._current_word = 0;\n this._current_word_bits_left = 0;\n }\n ExpGolomb.prototype.destroy = function () {\n this._buffer = null;\n };\n ExpGolomb.prototype._fillCurrentWord = function () {\n var buffer_bytes_left = this._total_bytes - this._buffer_index;\n if (buffer_bytes_left <= 0)\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__.IllegalStateException('ExpGolomb: _fillCurrentWord() but no bytes available');\n var bytes_read = Math.min(4, buffer_bytes_left);\n var word = new Uint8Array(4);\n word.set(this._buffer.subarray(this._buffer_index, this._buffer_index + bytes_read));\n this._current_word = new DataView(word.buffer).getUint32(0, false);\n this._buffer_index += bytes_read;\n this._current_word_bits_left = bytes_read * 8;\n };\n ExpGolomb.prototype.readBits = function (bits) {\n if (bits > 32)\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__.InvalidArgumentException('ExpGolomb: readBits() bits exceeded max 32bits!');\n if (bits <= this._current_word_bits_left) {\n var result_1 = this._current_word >>> (32 - bits);\n this._current_word <<= bits;\n this._current_word_bits_left -= bits;\n return result_1;\n }\n var result = this._current_word_bits_left ? this._current_word : 0;\n result = result >>> (32 - this._current_word_bits_left);\n var bits_need_left = bits - this._current_word_bits_left;\n this._fillCurrentWord();\n var bits_read_next = Math.min(bits_need_left, this._current_word_bits_left);\n var result2 = this._current_word >>> (32 - bits_read_next);\n this._current_word <<= bits_read_next;\n this._current_word_bits_left -= bits_read_next;\n result = (result << bits_read_next) | result2;\n return result;\n };\n ExpGolomb.prototype.readBool = function () {\n return this.readBits(1) === 1;\n };\n ExpGolomb.prototype.readByte = function () {\n return this.readBits(8);\n };\n ExpGolomb.prototype._skipLeadingZero = function () {\n var zero_count;\n for (zero_count = 0; zero_count < this._current_word_bits_left; zero_count++) {\n if (0 !== (this._current_word & (0x80000000 >>> zero_count))) {\n this._current_word <<= zero_count;\n this._current_word_bits_left -= zero_count;\n return zero_count;\n }\n }\n this._fillCurrentWord();\n return zero_count + this._skipLeadingZero();\n };\n ExpGolomb.prototype.readUEG = function () {\n var leading_zeros = this._skipLeadingZero();\n return this.readBits(leading_zeros + 1) - 1;\n };\n ExpGolomb.prototype.readSEG = function () {\n var value = this.readUEG();\n if (value & 0x01) {\n return (value + 1) >>> 1;\n }\n else {\n return -1 * (value >>> 1);\n }\n };\n return ExpGolomb;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (ExpGolomb);\n\n\n/***/ }),\n\n/***/ \"./src/demux/flv-demuxer.js\":\n/*!**********************************!*\\\n !*** ./src/demux/flv-demuxer.js ***!\n \\**********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _amf_parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./amf-parser.js */ \"./src/demux/amf-parser.js\");\n/* harmony import */ var _sps_parser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sps-parser.js */ \"./src/demux/sps-parser.js\");\n/* harmony import */ var _demux_errors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./demux-errors.js */ \"./src/demux/demux-errors.js\");\n/* harmony import */ var _core_media_info_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/media-info.js */ \"./src/core/media-info.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\nfunction Swap16(src) {\n return (((src >>> 8) & 0xFF) |\n ((src & 0xFF) << 8));\n}\nfunction Swap32(src) {\n return (((src & 0xFF000000) >>> 24) |\n ((src & 0x00FF0000) >>> 8) |\n ((src & 0x0000FF00) << 8) |\n ((src & 0x000000FF) << 24));\n}\nfunction ReadBig32(array, index) {\n return ((array[index] << 24) |\n (array[index + 1] << 16) |\n (array[index + 2] << 8) |\n (array[index + 3]));\n}\nvar FLVDemuxer = /** @class */ (function () {\n function FLVDemuxer(probeData, config) {\n this.TAG = 'FLVDemuxer';\n this._config = config;\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null;\n this._dataOffset = probeData.dataOffset;\n this._firstParse = true;\n this._dispatch = false;\n this._hasAudio = probeData.hasAudioTrack;\n this._hasVideo = probeData.hasVideoTrack;\n this._hasAudioFlagOverrided = false;\n this._hasVideoFlagOverrided = false;\n this._audioInitialMetadataDispatched = false;\n this._videoInitialMetadataDispatched = false;\n this._mediaInfo = new _core_media_info_js__WEBPACK_IMPORTED_MODULE_4__.default();\n this._mediaInfo.hasAudio = this._hasAudio;\n this._mediaInfo.hasVideo = this._hasVideo;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n this._naluLengthSize = 4;\n this._timestampBase = 0; // int32, in milliseconds\n this._timescale = 1000;\n this._duration = 0; // int32, in milliseconds\n this._durationOverrided = false;\n this._referenceFrameRate = {\n fixed: true,\n fps: 23.976,\n fps_num: 23976,\n fps_den: 1000\n };\n this._flvSoundRateTable = [5500, 11025, 22050, 44100, 48000];\n this._mpegSamplingRates = [\n 96000, 88200, 64000, 48000, 44100, 32000,\n 24000, 22050, 16000, 12000, 11025, 8000, 7350\n ];\n this._mpegAudioV10SampleRateTable = [44100, 48000, 32000, 0];\n this._mpegAudioV20SampleRateTable = [22050, 24000, 16000, 0];\n this._mpegAudioV25SampleRateTable = [11025, 12000, 8000, 0];\n this._mpegAudioL1BitRateTable = [0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, -1];\n this._mpegAudioL2BitRateTable = [0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, -1];\n this._mpegAudioL3BitRateTable = [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1];\n this._videoTrack = { type: 'video', id: 1, sequenceNumber: 0, samples: [], length: 0 };\n this._audioTrack = { type: 'audio', id: 2, sequenceNumber: 0, samples: [], length: 0 };\n this._littleEndian = (function () {\n var buf = new ArrayBuffer(2);\n (new DataView(buf)).setInt16(0, 256, true); // little-endian write\n return (new Int16Array(buf))[0] === 256; // platform-spec read, if equal then LE\n })();\n }\n FLVDemuxer.prototype.destroy = function () {\n this._mediaInfo = null;\n this._metadata = null;\n this._audioMetadata = null;\n this._videoMetadata = null;\n this._videoTrack = null;\n this._audioTrack = null;\n this._onError = null;\n this._onMediaInfo = null;\n this._onMetaDataArrived = null;\n this._onScriptDataArrived = null;\n this._onTrackMetadata = null;\n this._onDataAvailable = null;\n };\n FLVDemuxer.probe = function (buffer) {\n var data = new Uint8Array(buffer);\n var mismatch = { match: false };\n if (data[0] !== 0x46 || data[1] !== 0x4C || data[2] !== 0x56 || data[3] !== 0x01) {\n return mismatch;\n }\n var hasAudio = ((data[4] & 4) >>> 2) !== 0;\n var hasVideo = (data[4] & 1) !== 0;\n var offset = ReadBig32(data, 5);\n if (offset < 9) {\n return mismatch;\n }\n return {\n match: true,\n consumed: offset,\n dataOffset: offset,\n hasAudioTrack: hasAudio,\n hasVideoTrack: hasVideo\n };\n };\n FLVDemuxer.prototype.bindDataSource = function (loader) {\n loader.onDataArrival = this.parseChunks.bind(this);\n return this;\n };\n Object.defineProperty(FLVDemuxer.prototype, \"onTrackMetadata\", {\n // prototype: function(type: string, metadata: any): void\n get: function () {\n return this._onTrackMetadata;\n },\n set: function (callback) {\n this._onTrackMetadata = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"onMediaInfo\", {\n // prototype: function(mediaInfo: MediaInfo): void\n get: function () {\n return this._onMediaInfo;\n },\n set: function (callback) {\n this._onMediaInfo = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"onMetaDataArrived\", {\n get: function () {\n return this._onMetaDataArrived;\n },\n set: function (callback) {\n this._onMetaDataArrived = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"onScriptDataArrived\", {\n get: function () {\n return this._onScriptDataArrived;\n },\n set: function (callback) {\n this._onScriptDataArrived = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"onError\", {\n // prototype: function(type: number, info: string): void\n get: function () {\n return this._onError;\n },\n set: function (callback) {\n this._onError = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"onDataAvailable\", {\n // prototype: function(videoTrack: any, audioTrack: any): void\n get: function () {\n return this._onDataAvailable;\n },\n set: function (callback) {\n this._onDataAvailable = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"timestampBase\", {\n // timestamp base for output samples, must be in milliseconds\n get: function () {\n return this._timestampBase;\n },\n set: function (base) {\n this._timestampBase = base;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"overridedDuration\", {\n get: function () {\n return this._duration;\n },\n // Force-override media duration. Must be in milliseconds, int32\n set: function (duration) {\n this._durationOverrided = true;\n this._duration = duration;\n this._mediaInfo.duration = duration;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"overridedHasAudio\", {\n // Force-override audio track present flag, boolean\n set: function (hasAudio) {\n this._hasAudioFlagOverrided = true;\n this._hasAudio = hasAudio;\n this._mediaInfo.hasAudio = hasAudio;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FLVDemuxer.prototype, \"overridedHasVideo\", {\n // Force-override video track present flag, boolean\n set: function (hasVideo) {\n this._hasVideoFlagOverrided = true;\n this._hasVideo = hasVideo;\n this._mediaInfo.hasVideo = hasVideo;\n },\n enumerable: false,\n configurable: true\n });\n FLVDemuxer.prototype.resetMediaInfo = function () {\n this._mediaInfo = new _core_media_info_js__WEBPACK_IMPORTED_MODULE_4__.default();\n };\n FLVDemuxer.prototype._isInitialMetadataDispatched = function () {\n if (this._hasAudio && this._hasVideo) { // both audio & video\n return this._audioInitialMetadataDispatched && this._videoInitialMetadataDispatched;\n }\n if (this._hasAudio && !this._hasVideo) { // audio only\n return this._audioInitialMetadataDispatched;\n }\n if (!this._hasAudio && this._hasVideo) { // video only\n return this._videoInitialMetadataDispatched;\n }\n return false;\n };\n // function parseChunks(chunk: ArrayBuffer, byteStart: number): number;\n FLVDemuxer.prototype.parseChunks = function (chunk, byteStart) {\n if (!this._onError || !this._onMediaInfo || !this._onTrackMetadata || !this._onDataAvailable) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__.IllegalStateException('Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified');\n }\n var offset = 0;\n var le = this._littleEndian;\n if (byteStart === 0) { // buffer with FLV header\n if (chunk.byteLength > 13) {\n var probeData = FLVDemuxer.probe(chunk);\n offset = probeData.dataOffset;\n }\n else {\n return 0;\n }\n }\n if (this._firstParse) { // handle PreviousTagSize0 before Tag1\n this._firstParse = false;\n if (byteStart + offset !== this._dataOffset) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'First time parsing but chunk byteStart invalid!');\n }\n var v = new DataView(chunk, offset);\n var prevTagSize0 = v.getUint32(0, !le);\n if (prevTagSize0 !== 0) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'PrevTagSize0 !== 0 !!!');\n }\n offset += 4;\n }\n while (offset < chunk.byteLength) {\n this._dispatch = true;\n var v = new DataView(chunk, offset);\n if (offset + 11 + 4 > chunk.byteLength) {\n // data not enough for parsing an flv tag\n break;\n }\n var tagType = v.getUint8(0);\n var dataSize = v.getUint32(0, !le) & 0x00FFFFFF;\n if (offset + 11 + dataSize + 4 > chunk.byteLength) {\n // data not enough for parsing actual data body\n break;\n }\n if (tagType !== 8 && tagType !== 9 && tagType !== 18) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, \"Unsupported tag type \" + tagType + \", skipped\");\n // consume the whole tag (skip it)\n offset += 11 + dataSize + 4;\n continue;\n }\n var ts2 = v.getUint8(4);\n var ts1 = v.getUint8(5);\n var ts0 = v.getUint8(6);\n var ts3 = v.getUint8(7);\n var timestamp = ts0 | (ts1 << 8) | (ts2 << 16) | (ts3 << 24);\n var streamId = v.getUint32(7, !le) & 0x00FFFFFF;\n if (streamId !== 0) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Meet tag which has StreamID != 0!');\n }\n var dataOffset = offset + 11;\n switch (tagType) {\n case 8: // Audio\n this._parseAudioData(chunk, dataOffset, dataSize, timestamp);\n break;\n case 9: // Video\n this._parseVideoData(chunk, dataOffset, dataSize, timestamp, byteStart + offset);\n break;\n case 18: // ScriptDataObject\n this._parseScriptData(chunk, dataOffset, dataSize);\n break;\n }\n var prevTagSize = v.getUint32(11 + dataSize, !le);\n if (prevTagSize !== 11 + dataSize) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, \"Invalid PrevTagSize \" + prevTagSize);\n }\n offset += 11 + dataSize + 4; // tagBody + dataSize + prevTagSize\n }\n // dispatch parsed frames to consumer (typically, the remuxer)\n if (this._isInitialMetadataDispatched()) {\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n }\n return offset; // consumed bytes, just equals latest offset index\n };\n FLVDemuxer.prototype._parseScriptData = function (arrayBuffer, dataOffset, dataSize) {\n var scriptData = _amf_parser_js__WEBPACK_IMPORTED_MODULE_1__.default.parseScriptData(arrayBuffer, dataOffset, dataSize);\n if (scriptData.hasOwnProperty('onMetaData')) {\n if (scriptData.onMetaData == null || typeof scriptData.onMetaData !== 'object') {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Invalid onMetaData structure!');\n return;\n }\n if (this._metadata) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Found another onMetaData tag!');\n }\n this._metadata = scriptData;\n var onMetaData = this._metadata.onMetaData;\n if (this._onMetaDataArrived) {\n this._onMetaDataArrived(Object.assign({}, onMetaData));\n }\n if (typeof onMetaData.hasAudio === 'boolean') { // hasAudio\n if (this._hasAudioFlagOverrided === false) {\n this._hasAudio = onMetaData.hasAudio;\n this._mediaInfo.hasAudio = this._hasAudio;\n }\n }\n if (typeof onMetaData.hasVideo === 'boolean') { // hasVideo\n if (this._hasVideoFlagOverrided === false) {\n this._hasVideo = onMetaData.hasVideo;\n this._mediaInfo.hasVideo = this._hasVideo;\n }\n }\n if (typeof onMetaData.audiodatarate === 'number') { // audiodatarate\n this._mediaInfo.audioDataRate = onMetaData.audiodatarate;\n }\n if (typeof onMetaData.videodatarate === 'number') { // videodatarate\n this._mediaInfo.videoDataRate = onMetaData.videodatarate;\n }\n if (typeof onMetaData.width === 'number') { // width\n this._mediaInfo.width = onMetaData.width;\n }\n if (typeof onMetaData.height === 'number') { // height\n this._mediaInfo.height = onMetaData.height;\n }\n if (typeof onMetaData.duration === 'number') { // duration\n if (!this._durationOverrided) {\n var duration = Math.floor(onMetaData.duration * this._timescale);\n this._duration = duration;\n this._mediaInfo.duration = duration;\n }\n }\n else {\n this._mediaInfo.duration = 0;\n }\n if (typeof onMetaData.framerate === 'number') { // framerate\n var fps_num = Math.floor(onMetaData.framerate * 1000);\n if (fps_num > 0) {\n var fps = fps_num / 1000;\n this._referenceFrameRate.fixed = true;\n this._referenceFrameRate.fps = fps;\n this._referenceFrameRate.fps_num = fps_num;\n this._referenceFrameRate.fps_den = 1000;\n this._mediaInfo.fps = fps;\n }\n }\n if (typeof onMetaData.keyframes === 'object') { // keyframes\n this._mediaInfo.hasKeyframesIndex = true;\n var keyframes = onMetaData.keyframes;\n this._mediaInfo.keyframesIndex = this._parseKeyframesIndex(keyframes);\n onMetaData.keyframes = null; // keyframes has been extracted, remove it\n }\n else {\n this._mediaInfo.hasKeyframesIndex = false;\n }\n this._dispatch = false;\n this._mediaInfo.metadata = onMetaData;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.v(this.TAG, 'Parsed onMetaData');\n if (this._mediaInfo.isComplete()) {\n this._onMediaInfo(this._mediaInfo);\n }\n }\n if (Object.keys(scriptData).length > 0) {\n if (this._onScriptDataArrived) {\n this._onScriptDataArrived(Object.assign({}, scriptData));\n }\n }\n };\n FLVDemuxer.prototype._parseKeyframesIndex = function (keyframes) {\n var times = [];\n var filepositions = [];\n // ignore first keyframe which is actually AVC Sequence Header (AVCDecoderConfigurationRecord)\n for (var i = 1; i < keyframes.times.length; i++) {\n var time = this._timestampBase + Math.floor(keyframes.times[i] * 1000);\n times.push(time);\n filepositions.push(keyframes.filepositions[i]);\n }\n return {\n times: times,\n filepositions: filepositions\n };\n };\n FLVDemuxer.prototype._parseAudioData = function (arrayBuffer, dataOffset, dataSize, tagTimestamp) {\n if (dataSize <= 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Flv: Invalid audio packet, missing SoundData payload!');\n return;\n }\n if (this._hasAudioFlagOverrided === true && this._hasAudio === false) {\n // If hasAudio: false indicated explicitly in MediaDataSource,\n // Ignore all the audio packets\n return;\n }\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var soundSpec = v.getUint8(0);\n var soundFormat = soundSpec >>> 4;\n if (soundFormat !== 2 && soundFormat !== 10) { // MP3 or AAC\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.CODEC_UNSUPPORTED, 'Flv: Unsupported audio codec idx: ' + soundFormat);\n return;\n }\n var soundRate = 0;\n var soundRateIndex = (soundSpec & 12) >>> 2;\n if (soundRateIndex >= 0 && soundRateIndex <= 4) {\n soundRate = this._flvSoundRateTable[soundRateIndex];\n }\n else {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.FORMAT_ERROR, 'Flv: Invalid audio sample rate idx: ' + soundRateIndex);\n return;\n }\n var soundSize = (soundSpec & 2) >>> 1; // unused\n var soundType = (soundSpec & 1);\n var meta = this._audioMetadata;\n var track = this._audioTrack;\n if (!meta) {\n if (this._hasAudio === false && this._hasAudioFlagOverrided === false) {\n this._hasAudio = true;\n this._mediaInfo.hasAudio = true;\n }\n // initial metadata\n meta = this._audioMetadata = {};\n meta.type = 'audio';\n meta.id = track.id;\n meta.timescale = this._timescale;\n meta.duration = this._duration;\n meta.audioSampleRate = soundRate;\n meta.channelCount = (soundType === 0 ? 1 : 2);\n }\n if (soundFormat === 10) { // AAC\n var aacData = this._parseAACAudioData(arrayBuffer, dataOffset + 1, dataSize - 1);\n if (aacData == undefined) {\n return;\n }\n if (aacData.packetType === 0) { // AAC sequence header (AudioSpecificConfig)\n if (meta.config) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Found another AudioSpecificConfig!');\n }\n var misc = aacData.data;\n meta.audioSampleRate = misc.samplingRate;\n meta.channelCount = misc.channelCount;\n meta.codec = misc.codec;\n meta.originalCodec = misc.originalCodec;\n meta.config = misc.config;\n // The decode result of an aac sample is 1024 PCM samples\n meta.refSampleDuration = 1024 / meta.audioSampleRate * meta.timescale;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.v(this.TAG, 'Parsed AudioSpecificConfig');\n if (this._isInitialMetadataDispatched()) {\n // Non-initial metadata, force dispatch (or flush) parsed frames to remuxer\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n }\n else {\n this._audioInitialMetadataDispatched = true;\n }\n // then notify new metadata\n this._dispatch = false;\n this._onTrackMetadata('audio', meta);\n var mi = this._mediaInfo;\n mi.audioCodec = meta.originalCodec;\n mi.audioSampleRate = meta.audioSampleRate;\n mi.audioChannelCount = meta.channelCount;\n if (mi.hasVideo) {\n if (mi.videoCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n }\n else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.audioCodec + '\"';\n }\n if (mi.isComplete()) {\n this._onMediaInfo(mi);\n }\n }\n else if (aacData.packetType === 1) { // AAC raw frame data\n var dts = this._timestampBase + tagTimestamp;\n var aacSample = { unit: aacData.data, length: aacData.data.byteLength, dts: dts, pts: dts };\n track.samples.push(aacSample);\n track.length += aacData.data.length;\n }\n else {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.e(this.TAG, \"Flv: Unsupported AAC data type \" + aacData.packetType);\n }\n }\n else if (soundFormat === 2) { // MP3\n if (!meta.codec) {\n // We need metadata for mp3 audio track, extract info from frame header\n var misc = this._parseMP3AudioData(arrayBuffer, dataOffset + 1, dataSize - 1, true);\n if (misc == undefined) {\n return;\n }\n meta.audioSampleRate = misc.samplingRate;\n meta.channelCount = misc.channelCount;\n meta.codec = misc.codec;\n meta.originalCodec = misc.originalCodec;\n // The decode result of an mp3 sample is 1152 PCM samples\n meta.refSampleDuration = 1152 / meta.audioSampleRate * meta.timescale;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.v(this.TAG, 'Parsed MPEG Audio Frame Header');\n this._audioInitialMetadataDispatched = true;\n this._onTrackMetadata('audio', meta);\n var mi = this._mediaInfo;\n mi.audioCodec = meta.codec;\n mi.audioSampleRate = meta.audioSampleRate;\n mi.audioChannelCount = meta.channelCount;\n mi.audioDataRate = misc.bitRate;\n if (mi.hasVideo) {\n if (mi.videoCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n }\n else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.audioCodec + '\"';\n }\n if (mi.isComplete()) {\n this._onMediaInfo(mi);\n }\n }\n // This packet is always a valid audio packet, extract it\n var data = this._parseMP3AudioData(arrayBuffer, dataOffset + 1, dataSize - 1, false);\n if (data == undefined) {\n return;\n }\n var dts = this._timestampBase + tagTimestamp;\n var mp3Sample = { unit: data, length: data.byteLength, dts: dts, pts: dts };\n track.samples.push(mp3Sample);\n track.length += data.length;\n }\n };\n FLVDemuxer.prototype._parseAACAudioData = function (arrayBuffer, dataOffset, dataSize) {\n if (dataSize <= 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Flv: Invalid AAC packet, missing AACPacketType or/and Data!');\n return;\n }\n var result = {};\n var array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n result.packetType = array[0];\n if (array[0] === 0) {\n result.data = this._parseAACAudioSpecificConfig(arrayBuffer, dataOffset + 1, dataSize - 1);\n }\n else {\n result.data = array.subarray(1);\n }\n return result;\n };\n FLVDemuxer.prototype._parseAACAudioSpecificConfig = function (arrayBuffer, dataOffset, dataSize) {\n var array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n var config = null;\n /* Audio Object Type:\n 0: Null\n 1: AAC Main\n 2: AAC LC\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: HE-AAC / SBR (Spectral Band Replication)\n 6: AAC Scalable\n */\n var audioObjectType = 0;\n var originalAudioObjectType = 0;\n var audioExtensionObjectType = null;\n var samplingIndex = 0;\n var extensionSamplingIndex = null;\n // 5 bits\n audioObjectType = originalAudioObjectType = array[0] >>> 3;\n // 4 bits\n samplingIndex = ((array[0] & 0x07) << 1) | (array[1] >>> 7);\n if (samplingIndex < 0 || samplingIndex >= this._mpegSamplingRates.length) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.FORMAT_ERROR, 'Flv: AAC invalid sampling frequency index!');\n return;\n }\n var samplingFrequence = this._mpegSamplingRates[samplingIndex];\n // 4 bits\n var channelConfig = (array[1] & 0x78) >>> 3;\n if (channelConfig < 0 || channelConfig >= 8) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.FORMAT_ERROR, 'Flv: AAC invalid channel configuration');\n return;\n }\n if (audioObjectType === 5) { // HE-AAC?\n // 4 bits\n extensionSamplingIndex = ((array[1] & 0x07) << 1) | (array[2] >>> 7);\n // 5 bits\n audioExtensionObjectType = (array[2] & 0x7C) >>> 2;\n }\n // workarounds for various browsers\n var userAgent = self.navigator.userAgent.toLowerCase();\n if (userAgent.indexOf('firefox') !== -1) {\n // firefox: use SBR (HE-AAC) if freq less than 24kHz\n if (samplingIndex >= 6) {\n audioObjectType = 5;\n config = new Array(4);\n extensionSamplingIndex = samplingIndex - 3;\n }\n else { // use LC-AAC\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n }\n else if (userAgent.indexOf('android') !== -1) {\n // android: always use LC-AAC\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n else {\n // for other browsers, e.g. chrome...\n // Always use HE-AAC to make it easier to switch aac codec profile\n audioObjectType = 5;\n extensionSamplingIndex = samplingIndex;\n config = new Array(4);\n if (samplingIndex >= 6) {\n extensionSamplingIndex = samplingIndex - 3;\n }\n else if (channelConfig === 1) { // Mono channel\n audioObjectType = 2;\n config = new Array(2);\n extensionSamplingIndex = samplingIndex;\n }\n }\n config[0] = audioObjectType << 3;\n config[0] |= (samplingIndex & 0x0F) >>> 1;\n config[1] = (samplingIndex & 0x0F) << 7;\n config[1] |= (channelConfig & 0x0F) << 3;\n if (audioObjectType === 5) {\n config[1] |= ((extensionSamplingIndex & 0x0F) >>> 1);\n config[2] = (extensionSamplingIndex & 0x01) << 7;\n // extended audio object type: force to 2 (LC-AAC)\n config[2] |= (2 << 2);\n config[3] = 0;\n }\n return {\n config: config,\n samplingRate: samplingFrequence,\n channelCount: channelConfig,\n codec: 'mp4a.40.' + audioObjectType,\n originalCodec: 'mp4a.40.' + originalAudioObjectType\n };\n };\n FLVDemuxer.prototype._parseMP3AudioData = function (arrayBuffer, dataOffset, dataSize, requestHeader) {\n if (dataSize < 4) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Flv: Invalid MP3 packet, header missing!');\n return;\n }\n var le = this._littleEndian;\n var array = new Uint8Array(arrayBuffer, dataOffset, dataSize);\n var result = null;\n if (requestHeader) {\n if (array[0] !== 0xFF) {\n return;\n }\n var ver = (array[1] >>> 3) & 0x03;\n var layer = (array[1] & 0x06) >> 1;\n var bitrate_index = (array[2] & 0xF0) >>> 4;\n var sampling_freq_index = (array[2] & 0x0C) >>> 2;\n var channel_mode = (array[3] >>> 6) & 0x03;\n var channel_count = channel_mode !== 3 ? 2 : 1;\n var sample_rate = 0;\n var bit_rate = 0;\n var object_type = 34; // Layer-3, listed in MPEG-4 Audio Object Types\n var codec = 'mp3';\n switch (ver) {\n case 0: // MPEG 2.5\n sample_rate = this._mpegAudioV25SampleRateTable[sampling_freq_index];\n break;\n case 2: // MPEG 2\n sample_rate = this._mpegAudioV20SampleRateTable[sampling_freq_index];\n break;\n case 3: // MPEG 1\n sample_rate = this._mpegAudioV10SampleRateTable[sampling_freq_index];\n break;\n }\n switch (layer) {\n case 1: // Layer 3\n object_type = 34;\n if (bitrate_index < this._mpegAudioL3BitRateTable.length) {\n bit_rate = this._mpegAudioL3BitRateTable[bitrate_index];\n }\n break;\n case 2: // Layer 2\n object_type = 33;\n if (bitrate_index < this._mpegAudioL2BitRateTable.length) {\n bit_rate = this._mpegAudioL2BitRateTable[bitrate_index];\n }\n break;\n case 3: // Layer 1\n object_type = 32;\n if (bitrate_index < this._mpegAudioL1BitRateTable.length) {\n bit_rate = this._mpegAudioL1BitRateTable[bitrate_index];\n }\n break;\n }\n result = {\n bitRate: bit_rate,\n samplingRate: sample_rate,\n channelCount: channel_count,\n codec: codec,\n originalCodec: codec\n };\n }\n else {\n result = array;\n }\n return result;\n };\n FLVDemuxer.prototype._parseVideoData = function (arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition) {\n if (dataSize <= 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Flv: Invalid video packet, missing VideoData payload!');\n return;\n }\n if (this._hasVideoFlagOverrided === true && this._hasVideo === false) {\n // If hasVideo: false indicated explicitly in MediaDataSource,\n // Ignore all the video packets\n return;\n }\n var spec = (new Uint8Array(arrayBuffer, dataOffset, dataSize))[0];\n var frameType = (spec & 240) >>> 4;\n var codecId = spec & 15;\n if (codecId !== 7) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.CODEC_UNSUPPORTED, \"Flv: Unsupported codec in video frame: \" + codecId);\n return;\n }\n this._parseAVCVideoPacket(arrayBuffer, dataOffset + 1, dataSize - 1, tagTimestamp, tagPosition, frameType);\n };\n FLVDemuxer.prototype._parseAVCVideoPacket = function (arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition, frameType) {\n if (dataSize < 4) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime');\n return;\n }\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var packetType = v.getUint8(0);\n var cts_unsigned = v.getUint32(0, !le) & 0x00FFFFFF;\n var cts = (cts_unsigned << 8) >> 8; // convert to 24-bit signed int\n if (packetType === 0) { // AVCDecoderConfigurationRecord\n this._parseAVCDecoderConfigurationRecord(arrayBuffer, dataOffset + 4, dataSize - 4);\n }\n else if (packetType === 1) { // One or more Nalus\n this._parseAVCVideoData(arrayBuffer, dataOffset + 4, dataSize - 4, tagTimestamp, tagPosition, frameType, cts);\n }\n else if (packetType === 2) {\n // empty, AVC end of sequence\n }\n else {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.FORMAT_ERROR, \"Flv: Invalid video packet type \" + packetType);\n return;\n }\n };\n FLVDemuxer.prototype._parseAVCDecoderConfigurationRecord = function (arrayBuffer, dataOffset, dataSize) {\n if (dataSize < 7) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Flv: Invalid AVCDecoderConfigurationRecord, lack of data!');\n return;\n }\n var meta = this._videoMetadata;\n var track = this._videoTrack;\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n if (!meta) {\n if (this._hasVideo === false && this._hasVideoFlagOverrided === false) {\n this._hasVideo = true;\n this._mediaInfo.hasVideo = true;\n }\n meta = this._videoMetadata = {};\n meta.type = 'video';\n meta.id = track.id;\n meta.timescale = this._timescale;\n meta.duration = this._duration;\n }\n else {\n if (typeof meta.avcc !== 'undefined') {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Found another AVCDecoderConfigurationRecord!');\n }\n }\n var version = v.getUint8(0); // configurationVersion\n var avcProfile = v.getUint8(1); // avcProfileIndication\n var profileCompatibility = v.getUint8(2); // profile_compatibility\n var avcLevel = v.getUint8(3); // AVCLevelIndication\n if (version !== 1 || avcProfile === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord');\n return;\n }\n this._naluLengthSize = (v.getUint8(4) & 3) + 1; // lengthSizeMinusOne\n if (this._naluLengthSize !== 3 && this._naluLengthSize !== 4) { // holy shit!!!\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.FORMAT_ERROR, \"Flv: Strange NaluLengthSizeMinusOne: \" + (this._naluLengthSize - 1));\n return;\n }\n var spsCount = v.getUint8(5) & 31; // numOfSequenceParameterSets\n if (spsCount === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No SPS');\n return;\n }\n else if (spsCount > 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, \"Flv: Strange AVCDecoderConfigurationRecord: SPS Count = \" + spsCount);\n }\n var offset = 6;\n for (var i = 0; i < spsCount; i++) {\n var len = v.getUint16(offset, !le); // sequenceParameterSetLength\n offset += 2;\n if (len === 0) {\n continue;\n }\n // Notice: Nalu without startcode header (00 00 00 01)\n var sps = new Uint8Array(arrayBuffer, dataOffset + offset, len);\n offset += len;\n var config = _sps_parser_js__WEBPACK_IMPORTED_MODULE_2__.default.parseSPS(sps);\n if (i !== 0) {\n // ignore other sps's config\n continue;\n }\n meta.codecWidth = config.codec_size.width;\n meta.codecHeight = config.codec_size.height;\n meta.presentWidth = config.present_size.width;\n meta.presentHeight = config.present_size.height;\n meta.profile = config.profile_string;\n meta.level = config.level_string;\n meta.bitDepth = config.bit_depth;\n meta.chromaFormat = config.chroma_format;\n meta.sarRatio = config.sar_ratio;\n meta.frameRate = config.frame_rate;\n if (config.frame_rate.fixed === false ||\n config.frame_rate.fps_num === 0 ||\n config.frame_rate.fps_den === 0) {\n meta.frameRate = this._referenceFrameRate;\n }\n var fps_den = meta.frameRate.fps_den;\n var fps_num = meta.frameRate.fps_num;\n meta.refSampleDuration = meta.timescale * (fps_den / fps_num);\n var codecArray = sps.subarray(1, 4);\n var codecString = 'avc1.';\n for (var j = 0; j < 3; j++) {\n var h = codecArray[j].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n codecString += h;\n }\n meta.codec = codecString;\n var mi = this._mediaInfo;\n mi.width = meta.codecWidth;\n mi.height = meta.codecHeight;\n mi.fps = meta.frameRate.fps;\n mi.profile = meta.profile;\n mi.level = meta.level;\n mi.refFrames = config.ref_frames;\n mi.chromaFormat = config.chroma_format_string;\n mi.sarNum = meta.sarRatio.width;\n mi.sarDen = meta.sarRatio.height;\n mi.videoCodec = codecString;\n if (mi.hasAudio) {\n if (mi.audioCodec != null) {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + ',' + mi.audioCodec + '\"';\n }\n }\n else {\n mi.mimeType = 'video/x-flv; codecs=\"' + mi.videoCodec + '\"';\n }\n if (mi.isComplete()) {\n this._onMediaInfo(mi);\n }\n }\n var ppsCount = v.getUint8(offset); // numOfPictureParameterSets\n if (ppsCount === 0) {\n this._onError(_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__.default.FORMAT_ERROR, 'Flv: Invalid AVCDecoderConfigurationRecord: No PPS');\n return;\n }\n else if (ppsCount > 1) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, \"Flv: Strange AVCDecoderConfigurationRecord: PPS Count = \" + ppsCount);\n }\n offset++;\n for (var i = 0; i < ppsCount; i++) {\n var len = v.getUint16(offset, !le); // pictureParameterSetLength\n offset += 2;\n if (len === 0) {\n continue;\n }\n // pps is useless for extracting video information\n offset += len;\n }\n meta.avcc = new Uint8Array(dataSize);\n meta.avcc.set(new Uint8Array(arrayBuffer, dataOffset, dataSize), 0);\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.v(this.TAG, 'Parsed AVCDecoderConfigurationRecord');\n if (this._isInitialMetadataDispatched()) {\n // flush parsed frames\n if (this._dispatch && (this._audioTrack.length || this._videoTrack.length)) {\n this._onDataAvailable(this._audioTrack, this._videoTrack);\n }\n }\n else {\n this._videoInitialMetadataDispatched = true;\n }\n // notify new metadata\n this._dispatch = false;\n this._onTrackMetadata('video', meta);\n };\n FLVDemuxer.prototype._parseAVCVideoData = function (arrayBuffer, dataOffset, dataSize, tagTimestamp, tagPosition, frameType, cts) {\n var le = this._littleEndian;\n var v = new DataView(arrayBuffer, dataOffset, dataSize);\n var units = [], length = 0;\n var offset = 0;\n var lengthSize = this._naluLengthSize;\n var dts = this._timestampBase + tagTimestamp;\n var keyframe = (frameType === 1); // from FLV Frame Type constants\n while (offset < dataSize) {\n if (offset + 4 >= dataSize) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, \"Malformed Nalu near timestamp \" + dts + \", offset = \" + offset + \", dataSize = \" + dataSize);\n break; // data not enough for next Nalu\n }\n // Nalu with length-header (AVC1)\n var naluSize = v.getUint32(offset, !le); // Big-Endian read\n if (lengthSize === 3) {\n naluSize >>>= 8;\n }\n if (naluSize > dataSize - lengthSize) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, \"Malformed Nalus near timestamp \" + dts + \", NaluSize > DataSize!\");\n return;\n }\n var unitType = v.getUint8(offset + lengthSize) & 0x1F;\n if (unitType === 5) { // IDR\n keyframe = true;\n }\n var data = new Uint8Array(arrayBuffer, dataOffset + offset, lengthSize + naluSize);\n var unit = { type: unitType, data: data };\n units.push(unit);\n length += data.byteLength;\n offset += lengthSize + naluSize;\n }\n if (units.length) {\n var track = this._videoTrack;\n var avcSample = {\n units: units,\n length: length,\n isKeyframe: keyframe,\n dts: dts,\n cts: cts,\n pts: (dts + cts)\n };\n if (keyframe) {\n avcSample.fileposition = tagPosition;\n }\n track.samples.push(avcSample);\n track.length += length;\n }\n };\n return FLVDemuxer;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (FLVDemuxer);\n\n\n/***/ }),\n\n/***/ \"./src/demux/sps-parser.js\":\n/*!*********************************!*\\\n !*** ./src/demux/sps-parser.js ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exp_golomb_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exp-golomb.js */ \"./src/demux/exp-golomb.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar SPSParser = /** @class */ (function () {\n function SPSParser() {\n }\n SPSParser._ebsp2rbsp = function (uint8array) {\n var src = uint8array;\n var src_length = src.byteLength;\n var dst = new Uint8Array(src_length);\n var dst_idx = 0;\n for (var i = 0; i < src_length; i++) {\n if (i >= 2) {\n // Unescape: Skip 0x03 after 00 00\n if (src[i] === 0x03 && src[i - 1] === 0x00 && src[i - 2] === 0x00) {\n continue;\n }\n }\n dst[dst_idx] = src[i];\n dst_idx++;\n }\n return new Uint8Array(dst.buffer, 0, dst_idx);\n };\n SPSParser.parseSPS = function (uint8array) {\n var rbsp = SPSParser._ebsp2rbsp(uint8array);\n var gb = new _exp_golomb_js__WEBPACK_IMPORTED_MODULE_0__.default(rbsp);\n gb.readByte();\n var profile_idc = gb.readByte(); // profile_idc\n gb.readByte(); // constraint_set_flags[5] + reserved_zero[3]\n var level_idc = gb.readByte(); // level_idc\n gb.readUEG(); // seq_parameter_set_id\n var profile_string = SPSParser.getProfileString(profile_idc);\n var level_string = SPSParser.getLevelString(level_idc);\n var chroma_format_idc = 1;\n var chroma_format = 420;\n var chroma_format_table = [0, 420, 422, 444];\n var bit_depth = 8;\n if (profile_idc === 100 || profile_idc === 110 || profile_idc === 122 ||\n profile_idc === 244 || profile_idc === 44 || profile_idc === 83 ||\n profile_idc === 86 || profile_idc === 118 || profile_idc === 128 ||\n profile_idc === 138 || profile_idc === 144) {\n chroma_format_idc = gb.readUEG();\n if (chroma_format_idc === 3) {\n gb.readBits(1); // separate_colour_plane_flag\n }\n if (chroma_format_idc <= 3) {\n chroma_format = chroma_format_table[chroma_format_idc];\n }\n bit_depth = gb.readUEG() + 8; // bit_depth_luma_minus8\n gb.readUEG(); // bit_depth_chroma_minus8\n gb.readBits(1); // qpprime_y_zero_transform_bypass_flag\n if (gb.readBool()) { // seq_scaling_matrix_present_flag\n var scaling_list_count = (chroma_format_idc !== 3) ? 8 : 12;\n for (var i = 0; i < scaling_list_count; i++) {\n if (gb.readBool()) { // seq_scaling_list_present_flag\n if (i < 6) {\n SPSParser._skipScalingList(gb, 16);\n }\n else {\n SPSParser._skipScalingList(gb, 64);\n }\n }\n }\n }\n }\n gb.readUEG(); // log2_max_frame_num_minus4\n var pic_order_cnt_type = gb.readUEG();\n if (pic_order_cnt_type === 0) {\n gb.readUEG(); // log2_max_pic_order_cnt_lsb_minus_4\n }\n else if (pic_order_cnt_type === 1) {\n gb.readBits(1); // delta_pic_order_always_zero_flag\n gb.readSEG(); // offset_for_non_ref_pic\n gb.readSEG(); // offset_for_top_to_bottom_field\n var num_ref_frames_in_pic_order_cnt_cycle = gb.readUEG();\n for (var i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++) {\n gb.readSEG(); // offset_for_ref_frame\n }\n }\n var ref_frames = gb.readUEG(); // max_num_ref_frames\n gb.readBits(1); // gaps_in_frame_num_value_allowed_flag\n var pic_width_in_mbs_minus1 = gb.readUEG();\n var pic_height_in_map_units_minus1 = gb.readUEG();\n var frame_mbs_only_flag = gb.readBits(1);\n if (frame_mbs_only_flag === 0) {\n gb.readBits(1); // mb_adaptive_frame_field_flag\n }\n gb.readBits(1); // direct_8x8_inference_flag\n var frame_crop_left_offset = 0;\n var frame_crop_right_offset = 0;\n var frame_crop_top_offset = 0;\n var frame_crop_bottom_offset = 0;\n var frame_cropping_flag = gb.readBool();\n if (frame_cropping_flag) {\n frame_crop_left_offset = gb.readUEG();\n frame_crop_right_offset = gb.readUEG();\n frame_crop_top_offset = gb.readUEG();\n frame_crop_bottom_offset = gb.readUEG();\n }\n var sar_width = 1, sar_height = 1;\n var fps = 0, fps_fixed = true, fps_num = 0, fps_den = 0;\n var vui_parameters_present_flag = gb.readBool();\n if (vui_parameters_present_flag) {\n if (gb.readBool()) { // aspect_ratio_info_present_flag\n var aspect_ratio_idc = gb.readByte();\n var sar_w_table = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2];\n var sar_h_table = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];\n if (aspect_ratio_idc > 0 && aspect_ratio_idc < 16) {\n sar_width = sar_w_table[aspect_ratio_idc - 1];\n sar_height = sar_h_table[aspect_ratio_idc - 1];\n }\n else if (aspect_ratio_idc === 255) {\n sar_width = gb.readByte() << 8 | gb.readByte();\n sar_height = gb.readByte() << 8 | gb.readByte();\n }\n }\n if (gb.readBool()) { // overscan_info_present_flag\n gb.readBool(); // overscan_appropriate_flag\n }\n if (gb.readBool()) { // video_signal_type_present_flag\n gb.readBits(4); // video_format & video_full_range_flag\n if (gb.readBool()) { // colour_description_present_flag\n gb.readBits(24); // colour_primaries & transfer_characteristics & matrix_coefficients\n }\n }\n if (gb.readBool()) { // chroma_loc_info_present_flag\n gb.readUEG(); // chroma_sample_loc_type_top_field\n gb.readUEG(); // chroma_sample_loc_type_bottom_field\n }\n if (gb.readBool()) { // timing_info_present_flag\n var num_units_in_tick = gb.readBits(32);\n var time_scale = gb.readBits(32);\n fps_fixed = gb.readBool(); // fixed_frame_rate_flag\n fps_num = time_scale;\n fps_den = num_units_in_tick * 2;\n fps = fps_num / fps_den;\n }\n }\n var sarScale = 1;\n if (sar_width !== 1 || sar_height !== 1) {\n sarScale = sar_width / sar_height;\n }\n var crop_unit_x = 0, crop_unit_y = 0;\n if (chroma_format_idc === 0) {\n crop_unit_x = 1;\n crop_unit_y = 2 - frame_mbs_only_flag;\n }\n else {\n var sub_wc = (chroma_format_idc === 3) ? 1 : 2;\n var sub_hc = (chroma_format_idc === 1) ? 2 : 1;\n crop_unit_x = sub_wc;\n crop_unit_y = sub_hc * (2 - frame_mbs_only_flag);\n }\n var codec_width = (pic_width_in_mbs_minus1 + 1) * 16;\n var codec_height = (2 - frame_mbs_only_flag) * ((pic_height_in_map_units_minus1 + 1) * 16);\n codec_width -= (frame_crop_left_offset + frame_crop_right_offset) * crop_unit_x;\n codec_height -= (frame_crop_top_offset + frame_crop_bottom_offset) * crop_unit_y;\n var present_width = Math.ceil(codec_width * sarScale);\n gb.destroy();\n gb = null;\n return {\n profile_string: profile_string,\n level_string: level_string,\n bit_depth: bit_depth,\n ref_frames: ref_frames,\n chroma_format: chroma_format,\n chroma_format_string: SPSParser.getChromaFormatString(chroma_format),\n frame_rate: {\n fixed: fps_fixed,\n fps: fps,\n fps_den: fps_den,\n fps_num: fps_num\n },\n sar_ratio: {\n width: sar_width,\n height: sar_height\n },\n codec_size: {\n width: codec_width,\n height: codec_height\n },\n present_size: {\n width: present_width,\n height: codec_height\n }\n };\n };\n SPSParser._skipScalingList = function (gb, count) {\n var last_scale = 8, next_scale = 8;\n var delta_scale = 0;\n for (var i = 0; i < count; i++) {\n if (next_scale !== 0) {\n delta_scale = gb.readSEG();\n next_scale = (last_scale + delta_scale + 256) % 256;\n }\n last_scale = (next_scale === 0) ? last_scale : next_scale;\n }\n };\n SPSParser.getProfileString = function (profile_idc) {\n switch (profile_idc) {\n case 66:\n return 'Baseline';\n case 77:\n return 'Main';\n case 88:\n return 'Extended';\n case 100:\n return 'High';\n case 110:\n return 'High10';\n case 122:\n return 'High422';\n case 244:\n return 'High444';\n default:\n return 'Unknown';\n }\n };\n SPSParser.getLevelString = function (level_idc) {\n return (level_idc / 10).toFixed(1);\n };\n SPSParser.getChromaFormatString = function (chroma) {\n switch (chroma) {\n case 420:\n return '4:2:0';\n case 422:\n return '4:2:2';\n case 444:\n return '4:4:4';\n default:\n return 'Unknown';\n }\n };\n return SPSParser;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (SPSParser);\n\n\n/***/ }),\n\n/***/ \"./src/flv.js\":\n/*!********************!*\\\n !*** ./src/flv.js ***!\n \\********************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_polyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/polyfill.js */ \"./src/utils/polyfill.js\");\n/* harmony import */ var _core_features_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core/features.js */ \"./src/core/features.js\");\n/* harmony import */ var _io_loader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./io/loader.js */ \"./src/io/loader.js\");\n/* harmony import */ var _player_flv_player_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./player/flv-player.js */ \"./src/player/flv-player.js\");\n/* harmony import */ var _player_native_player_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./player/native-player.js */ \"./src/player/native-player.js\");\n/* harmony import */ var _player_player_events_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./player/player-events.js */ \"./src/player/player-events.js\");\n/* harmony import */ var _player_player_errors_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./player/player-errors.js */ \"./src/player/player-errors.js\");\n/* harmony import */ var _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/logging-control.js */ \"./src/utils/logging-control.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\n\n// here are all the interfaces\n// install polyfills\n_utils_polyfill_js__WEBPACK_IMPORTED_MODULE_0__.default.install();\n// factory method\nfunction createPlayer(mediaDataSource, optionalConfig) {\n var mds = mediaDataSource;\n if (mds == null || typeof mds !== 'object') {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_8__.InvalidArgumentException('MediaDataSource must be an javascript object!');\n }\n if (!mds.hasOwnProperty('type')) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_8__.InvalidArgumentException('MediaDataSource must has type field to indicate video file type!');\n }\n switch (mds.type) {\n case 'flv':\n return new _player_flv_player_js__WEBPACK_IMPORTED_MODULE_3__.default(mds, optionalConfig);\n default:\n return new _player_native_player_js__WEBPACK_IMPORTED_MODULE_4__.default(mds, optionalConfig);\n }\n}\n// feature detection\nfunction isSupported() {\n return _core_features_js__WEBPACK_IMPORTED_MODULE_1__.default.supportMSEH264Playback();\n}\nfunction getFeatureList() {\n return _core_features_js__WEBPACK_IMPORTED_MODULE_1__.default.getFeatureList();\n}\n// interfaces\nvar flvjs = {};\nflvjs.createPlayer = createPlayer;\nflvjs.isSupported = isSupported;\nflvjs.getFeatureList = getFeatureList;\nflvjs.BaseLoader = _io_loader_js__WEBPACK_IMPORTED_MODULE_2__.BaseLoader;\nflvjs.LoaderStatus = _io_loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus;\nflvjs.LoaderErrors = _io_loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors;\nflvjs.Events = _player_player_events_js__WEBPACK_IMPORTED_MODULE_5__.default;\nflvjs.ErrorTypes = _player_player_errors_js__WEBPACK_IMPORTED_MODULE_6__.ErrorTypes;\nflvjs.ErrorDetails = _player_player_errors_js__WEBPACK_IMPORTED_MODULE_6__.ErrorDetails;\nflvjs.FlvPlayer = _player_flv_player_js__WEBPACK_IMPORTED_MODULE_3__.default;\nflvjs.NativePlayer = _player_native_player_js__WEBPACK_IMPORTED_MODULE_4__.default;\nflvjs.LoggingControl = _utils_logging_control_js__WEBPACK_IMPORTED_MODULE_7__.default;\nObject.defineProperty(flvjs, 'version', {\n enumerable: true,\n get: function () {\n // replace by webpack.DefinePlugin\n return \"1.6.2\";\n }\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (flvjs);\n\n\n/***/ }),\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n// entry/index file\n// make it compatible with browserify's umd wrapper\nmodule.exports = __webpack_require__(/*! ./flv.js */ \"./src/flv.js\").default;\n\n\n/***/ }),\n\n/***/ \"./src/io/fetch-stream-loader.js\":\n/*!***************************************!*\\\n !*** ./src/io/fetch-stream-loader.js ***!\n \\***************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/utils/browser.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loader.js */ \"./src/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n/* fetch + stream IO loader. Currently working on chrome 43+.\n * fetch provides a better alternative http API to XMLHttpRequest\n *\n * fetch spec https://fetch.spec.whatwg.org/\n * stream spec https://streams.spec.whatwg.org/\n */\nvar FetchStreamLoader = /** @class */ (function (_super) {\n __extends(FetchStreamLoader, _super);\n function FetchStreamLoader(seekHandler, config) {\n var _this = _super.call(this, 'fetch-stream-loader') || this;\n _this.TAG = 'FetchStreamLoader';\n _this._seekHandler = seekHandler;\n _this._config = config;\n _this._needStash = true;\n _this._requestAbort = false;\n _this._contentLength = null;\n _this._receivedLength = 0;\n return _this;\n }\n FetchStreamLoader.isSupported = function () {\n try {\n // fetch + stream is broken on Microsoft Edge. Disable before build 15048.\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8196907/\n // Fixed in Jan 10, 2017. Build 15048+ removed from blacklist.\n var isWorkWellEdge = _utils_browser_js__WEBPACK_IMPORTED_MODULE_0__.default.msedge && _utils_browser_js__WEBPACK_IMPORTED_MODULE_0__.default.version.minor >= 15048;\n var browserNotBlacklisted = _utils_browser_js__WEBPACK_IMPORTED_MODULE_0__.default.msedge ? isWorkWellEdge : true;\n return (self.fetch && self.ReadableStream && browserNotBlacklisted);\n }\n catch (e) {\n return false;\n }\n };\n FetchStreamLoader.prototype.destroy = function () {\n if (this.isWorking()) {\n this.abort();\n }\n _super.prototype.destroy.call(this);\n };\n FetchStreamLoader.prototype.open = function (dataSource, range) {\n var _this = this;\n this._dataSource = dataSource;\n this._range = range;\n var sourceURL = dataSource.url;\n if (this._config.reuseRedirectedURL && dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n var seekConfig = this._seekHandler.getConfig(sourceURL, range);\n var headers = new self.Headers();\n if (typeof seekConfig.headers === 'object') {\n var configHeaders = seekConfig.headers;\n for (var key in configHeaders) {\n if (configHeaders.hasOwnProperty(key)) {\n headers.append(key, configHeaders[key]);\n }\n }\n }\n var params = {\n method: 'GET',\n headers: headers,\n mode: 'cors',\n cache: 'default',\n // The default policy of Fetch API in the whatwg standard\n // Safari incorrectly indicates 'no-referrer' as default policy, fuck it\n referrerPolicy: 'no-referrer-when-downgrade'\n };\n // add additional headers\n if (typeof this._config.headers === 'object') {\n for (var key in this._config.headers) {\n headers.append(key, this._config.headers[key]);\n }\n }\n // cors is enabled by default\n if (dataSource.cors === false) {\n // no-cors means 'disregard cors policy', which can only be used in ServiceWorker\n params.mode = 'same-origin';\n }\n // withCredentials is disabled by default\n if (dataSource.withCredentials) {\n params.credentials = 'include';\n }\n // referrerPolicy from config\n if (dataSource.referrerPolicy) {\n params.referrerPolicy = dataSource.referrerPolicy;\n }\n // add abort controller, by wmlgl 2019-5-10 12:21:27\n if (self.AbortController) {\n this._abortController = new self.AbortController();\n params.signal = this._abortController.signal;\n }\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kConnecting;\n self.fetch(seekConfig.url, params).then(function (res) {\n if (_this._requestAbort) {\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kIdle;\n res.body.cancel();\n return;\n }\n if (res.ok && (res.status >= 200 && res.status <= 299)) {\n if (res.url !== seekConfig.url) {\n if (_this._onURLRedirect) {\n var redirectedURL = _this._seekHandler.removeURLParameters(res.url);\n _this._onURLRedirect(redirectedURL);\n }\n }\n var lengthHeader = res.headers.get('Content-Length');\n if (lengthHeader != null) {\n _this._contentLength = parseInt(lengthHeader);\n if (_this._contentLength !== 0) {\n if (_this._onContentLengthKnown) {\n _this._onContentLengthKnown(_this._contentLength);\n }\n }\n }\n return _this._pump.call(_this, res.body.getReader());\n }\n else {\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kError;\n if (_this._onError) {\n _this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: res.status, msg: res.statusText });\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.RuntimeException('FetchStreamLoader: Http code invalid, ' + res.status + ' ' + res.statusText);\n }\n }\n }).catch(function (e) {\n if (_this._abortController && _this._abortController.signal.aborted) {\n return;\n }\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kError;\n if (_this._onError) {\n _this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderErrors.EXCEPTION, { code: -1, msg: e.message });\n }\n else {\n throw e;\n }\n });\n };\n FetchStreamLoader.prototype.abort = function () {\n this._requestAbort = true;\n if (this._status !== _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kBuffering || !_utils_browser_js__WEBPACK_IMPORTED_MODULE_0__.default.chrome) {\n // Chrome may throw Exception-like things here, avoid using if is buffering\n if (this._abortController) {\n try {\n this._abortController.abort();\n }\n catch (e) { }\n }\n }\n };\n FetchStreamLoader.prototype._pump = function (reader) {\n var _this = this;\n return reader.read().then(function (result) {\n if (result.done) {\n // First check received length\n if (_this._contentLength !== null && _this._receivedLength < _this._contentLength) {\n // Report Early-EOF\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kError;\n var type = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderErrors.EARLY_EOF;\n var info = { code: -1, msg: 'Fetch stream meet Early-EOF' };\n if (_this._onError) {\n _this._onError(type, info);\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.RuntimeException(info.msg);\n }\n }\n else {\n // OK. Download complete\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kComplete;\n if (_this._onComplete) {\n _this._onComplete(_this._range.from, _this._range.from + _this._receivedLength - 1);\n }\n }\n }\n else {\n if (_this._abortController && _this._abortController.signal.aborted) {\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kComplete;\n return;\n }\n else if (_this._requestAbort === true) {\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kComplete;\n return reader.cancel();\n }\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kBuffering;\n var chunk = result.value.buffer;\n var byteStart = _this._range.from + _this._receivedLength;\n _this._receivedLength += chunk.byteLength;\n if (_this._onDataArrival) {\n _this._onDataArrival(chunk, byteStart, _this._receivedLength);\n }\n _this._pump(reader);\n }\n }).catch(function (e) {\n if (_this._abortController && _this._abortController.signal.aborted) {\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kComplete;\n return;\n }\n if (e.code === 11 && _utils_browser_js__WEBPACK_IMPORTED_MODULE_0__.default.msedge) { // InvalidStateError on Microsoft Edge\n // Workaround: Edge may throw InvalidStateError after ReadableStreamReader.cancel() call\n // Ignore the unknown exception.\n // Related issue: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11265202/\n return;\n }\n _this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kError;\n var type = 0;\n var info = null;\n if ((e.code === 19 || e.message === 'network error') && // NETWORK_ERR\n (_this._contentLength === null ||\n (_this._contentLength !== null && _this._receivedLength < _this._contentLength))) {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderErrors.EARLY_EOF;\n info = { code: e.code, msg: 'Fetch stream meet Early-EOF' };\n }\n else {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderErrors.EXCEPTION;\n info = { code: e.code, msg: e.message };\n }\n if (_this._onError) {\n _this._onError(type, info);\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.RuntimeException(info.msg);\n }\n });\n };\n return FetchStreamLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_1__.BaseLoader));\n/* harmony default export */ __webpack_exports__[\"default\"] = (FetchStreamLoader);\n\n\n/***/ }),\n\n/***/ \"./src/io/io-controller.js\":\n/*!*********************************!*\\\n !*** ./src/io/io-controller.js ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./speed-sampler.js */ \"./src/io/speed-sampler.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loader.js */ \"./src/io/loader.js\");\n/* harmony import */ var _fetch_stream_loader_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fetch-stream-loader.js */ \"./src/io/fetch-stream-loader.js\");\n/* harmony import */ var _xhr_moz_chunked_loader_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./xhr-moz-chunked-loader.js */ \"./src/io/xhr-moz-chunked-loader.js\");\n/* harmony import */ var _xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./xhr-range-loader.js */ \"./src/io/xhr-range-loader.js\");\n/* harmony import */ var _websocket_loader_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./websocket-loader.js */ \"./src/io/websocket-loader.js\");\n/* harmony import */ var _range_seek_handler_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./range-seek-handler.js */ \"./src/io/range-seek-handler.js\");\n/* harmony import */ var _param_seek_handler_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./param-seek-handler.js */ \"./src/io/param-seek-handler.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * DataSource: {\n * url: string,\n * filesize: number,\n * cors: boolean,\n * withCredentials: boolean\n * }\n *\n */\n// Manage IO Loaders\nvar IOController = /** @class */ (function () {\n function IOController(dataSource, config, extraData) {\n this.TAG = 'IOController';\n this._config = config;\n this._extraData = extraData;\n this._stashInitialSize = 1024 * 384; // default initial size: 384KB\n if (config.stashInitialSize != undefined && config.stashInitialSize > 0) {\n // apply from config\n this._stashInitialSize = config.stashInitialSize;\n }\n this._stashUsed = 0;\n this._stashSize = this._stashInitialSize;\n this._bufferSize = 1024 * 1024 * 3; // initial size: 3MB\n this._stashBuffer = new ArrayBuffer(this._bufferSize);\n this._stashByteStart = 0;\n this._enableStash = true;\n if (config.enableStashBuffer === false) {\n this._enableStash = false;\n }\n this._loader = null;\n this._loaderClass = null;\n this._seekHandler = null;\n this._dataSource = dataSource;\n this._isWebSocketURL = /wss?:\\/\\/(.+?)/.test(dataSource.url);\n this._refTotalLength = dataSource.filesize ? dataSource.filesize : null;\n this._totalLength = this._refTotalLength;\n this._fullRequestFlag = false;\n this._currentRange = null;\n this._redirectedURL = null;\n this._speedNormalized = 0;\n this._speedSampler = new _speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__.default();\n this._speedNormalizeList = [64, 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096];\n this._isEarlyEofReconnecting = false;\n this._paused = false;\n this._resumeFrom = 0;\n this._onDataArrival = null;\n this._onSeeked = null;\n this._onError = null;\n this._onComplete = null;\n this._onRedirect = null;\n this._onRecoveredEarlyEof = null;\n this._selectSeekHandler();\n this._selectLoader();\n this._createLoader();\n }\n IOController.prototype.destroy = function () {\n if (this._loader.isWorking()) {\n this._loader.abort();\n }\n this._loader.destroy();\n this._loader = null;\n this._loaderClass = null;\n this._dataSource = null;\n this._stashBuffer = null;\n this._stashUsed = this._stashSize = this._bufferSize = this._stashByteStart = 0;\n this._currentRange = null;\n this._speedSampler = null;\n this._isEarlyEofReconnecting = false;\n this._onDataArrival = null;\n this._onSeeked = null;\n this._onError = null;\n this._onComplete = null;\n this._onRedirect = null;\n this._onRecoveredEarlyEof = null;\n this._extraData = null;\n };\n IOController.prototype.isWorking = function () {\n return this._loader && this._loader.isWorking() && !this._paused;\n };\n IOController.prototype.isPaused = function () {\n return this._paused;\n };\n Object.defineProperty(IOController.prototype, \"status\", {\n get: function () {\n return this._loader.status;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"extraData\", {\n get: function () {\n return this._extraData;\n },\n set: function (data) {\n this._extraData = data;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"onDataArrival\", {\n // prototype: function onDataArrival(chunks: ArrayBuffer, byteStart: number): number\n get: function () {\n return this._onDataArrival;\n },\n set: function (callback) {\n this._onDataArrival = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"onSeeked\", {\n get: function () {\n return this._onSeeked;\n },\n set: function (callback) {\n this._onSeeked = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"onError\", {\n // prototype: function onError(type: number, info: {code: number, msg: string}): void\n get: function () {\n return this._onError;\n },\n set: function (callback) {\n this._onError = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"onComplete\", {\n get: function () {\n return this._onComplete;\n },\n set: function (callback) {\n this._onComplete = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"onRedirect\", {\n get: function () {\n return this._onRedirect;\n },\n set: function (callback) {\n this._onRedirect = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"onRecoveredEarlyEof\", {\n get: function () {\n return this._onRecoveredEarlyEof;\n },\n set: function (callback) {\n this._onRecoveredEarlyEof = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"currentURL\", {\n get: function () {\n return this._dataSource.url;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"hasRedirect\", {\n get: function () {\n return (this._redirectedURL != null || this._dataSource.redirectedURL != undefined);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"currentRedirectedURL\", {\n get: function () {\n return this._redirectedURL || this._dataSource.redirectedURL;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"currentSpeed\", {\n // in KB/s\n get: function () {\n if (this._loaderClass === _xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_5__.default) {\n // SpeedSampler is inaccuracy if loader is RangeLoader\n return this._loader.currentSpeed;\n }\n return this._speedSampler.lastSecondKBps;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(IOController.prototype, \"loaderType\", {\n get: function () {\n return this._loader.type;\n },\n enumerable: false,\n configurable: true\n });\n IOController.prototype._selectSeekHandler = function () {\n var config = this._config;\n if (config.seekType === 'range') {\n this._seekHandler = new _range_seek_handler_js__WEBPACK_IMPORTED_MODULE_7__.default(this._config.rangeLoadZeroStart);\n }\n else if (config.seekType === 'param') {\n var paramStart = config.seekParamStart || 'bstart';\n var paramEnd = config.seekParamEnd || 'bend';\n this._seekHandler = new _param_seek_handler_js__WEBPACK_IMPORTED_MODULE_8__.default(paramStart, paramEnd);\n }\n else if (config.seekType === 'custom') {\n if (typeof config.customSeekHandler !== 'function') {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_9__.InvalidArgumentException('Custom seekType specified in config but invalid customSeekHandler!');\n }\n this._seekHandler = new config.customSeekHandler();\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_9__.InvalidArgumentException(\"Invalid seekType in config: \" + config.seekType);\n }\n };\n IOController.prototype._selectLoader = function () {\n if (this._config.customLoader != null) {\n this._loaderClass = this._config.customLoader;\n }\n else if (this._isWebSocketURL) {\n this._loaderClass = _websocket_loader_js__WEBPACK_IMPORTED_MODULE_6__.default;\n }\n else if (_fetch_stream_loader_js__WEBPACK_IMPORTED_MODULE_3__.default.isSupported()) {\n this._loaderClass = _fetch_stream_loader_js__WEBPACK_IMPORTED_MODULE_3__.default;\n }\n else if (_xhr_moz_chunked_loader_js__WEBPACK_IMPORTED_MODULE_4__.default.isSupported()) {\n this._loaderClass = _xhr_moz_chunked_loader_js__WEBPACK_IMPORTED_MODULE_4__.default;\n }\n else if (_xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_5__.default.isSupported()) {\n this._loaderClass = _xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_5__.default;\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_9__.RuntimeException('Your browser doesn\\'t support xhr with arraybuffer responseType!');\n }\n };\n IOController.prototype._createLoader = function () {\n this._loader = new this._loaderClass(this._seekHandler, this._config);\n if (this._loader.needStashBuffer === false) {\n this._enableStash = false;\n }\n this._loader.onContentLengthKnown = this._onContentLengthKnown.bind(this);\n this._loader.onURLRedirect = this._onURLRedirect.bind(this);\n this._loader.onDataArrival = this._onLoaderChunkArrival.bind(this);\n this._loader.onComplete = this._onLoaderComplete.bind(this);\n this._loader.onError = this._onLoaderError.bind(this);\n };\n IOController.prototype.open = function (optionalFrom) {\n this._currentRange = { from: 0, to: -1 };\n if (optionalFrom) {\n this._currentRange.from = optionalFrom;\n }\n this._speedSampler.reset();\n if (!optionalFrom) {\n this._fullRequestFlag = true;\n }\n this._loader.open(this._dataSource, Object.assign({}, this._currentRange));\n };\n IOController.prototype.abort = function () {\n this._loader.abort();\n if (this._paused) {\n this._paused = false;\n this._resumeFrom = 0;\n }\n };\n IOController.prototype.pause = function () {\n if (this.isWorking()) {\n this._loader.abort();\n if (this._stashUsed !== 0) {\n this._resumeFrom = this._stashByteStart;\n this._currentRange.to = this._stashByteStart - 1;\n }\n else {\n this._resumeFrom = this._currentRange.to + 1;\n }\n this._stashUsed = 0;\n this._stashByteStart = 0;\n this._paused = true;\n }\n };\n IOController.prototype.resume = function () {\n if (this._paused) {\n this._paused = false;\n var bytes = this._resumeFrom;\n this._resumeFrom = 0;\n this._internalSeek(bytes, true);\n }\n };\n IOController.prototype.seek = function (bytes) {\n this._paused = false;\n this._stashUsed = 0;\n this._stashByteStart = 0;\n this._internalSeek(bytes, true);\n };\n /**\n * When seeking request is from media seeking, unconsumed stash data should be dropped\n * However, stash data shouldn't be dropped if seeking requested from http reconnection\n *\n * @dropUnconsumed: Ignore and discard all unconsumed data in stash buffer\n */\n IOController.prototype._internalSeek = function (bytes, dropUnconsumed) {\n if (this._loader.isWorking()) {\n this._loader.abort();\n }\n // dispatch & flush stash buffer before seek\n this._flushStashBuffer(dropUnconsumed);\n this._loader.destroy();\n this._loader = null;\n var requestRange = { from: bytes, to: -1 };\n this._currentRange = { from: requestRange.from, to: -1 };\n this._speedSampler.reset();\n this._stashSize = this._stashInitialSize;\n this._createLoader();\n this._loader.open(this._dataSource, requestRange);\n if (this._onSeeked) {\n this._onSeeked();\n }\n };\n IOController.prototype.updateUrl = function (url) {\n if (!url || typeof url !== 'string' || url.length === 0) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_9__.InvalidArgumentException('Url must be a non-empty string!');\n }\n this._dataSource.url = url;\n // TODO: replace with new url\n };\n IOController.prototype._expandBuffer = function (expectedBytes) {\n var bufferNewSize = this._stashSize;\n while (bufferNewSize + 1024 * 1024 * 1 < expectedBytes) {\n bufferNewSize *= 2;\n }\n bufferNewSize += 1024 * 1024 * 1; // bufferSize = stashSize + 1MB\n if (bufferNewSize === this._bufferSize) {\n return;\n }\n var newBuffer = new ArrayBuffer(bufferNewSize);\n if (this._stashUsed > 0) { // copy existing data into new buffer\n var stashOldArray = new Uint8Array(this._stashBuffer, 0, this._stashUsed);\n var stashNewArray = new Uint8Array(newBuffer, 0, bufferNewSize);\n stashNewArray.set(stashOldArray, 0);\n }\n this._stashBuffer = newBuffer;\n this._bufferSize = bufferNewSize;\n };\n IOController.prototype._normalizeSpeed = function (input) {\n var list = this._speedNormalizeList;\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n if (input < list[0]) {\n return list[0];\n }\n // binary search\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (input >= list[mid] && input < list[mid + 1])) {\n return list[mid];\n }\n else if (list[mid] < input) {\n lbound = mid + 1;\n }\n else {\n ubound = mid - 1;\n }\n }\n };\n IOController.prototype._adjustStashSize = function (normalized) {\n var stashSizeKB = 0;\n if (this._config.isLive) {\n // live stream: always use single normalized speed for size of stashSizeKB\n stashSizeKB = normalized;\n }\n else {\n if (normalized < 512) {\n stashSizeKB = normalized;\n }\n else if (normalized >= 512 && normalized <= 1024) {\n stashSizeKB = Math.floor(normalized * 1.5);\n }\n else {\n stashSizeKB = normalized * 2;\n }\n }\n if (stashSizeKB > 8192) {\n stashSizeKB = 8192;\n }\n var bufferSize = stashSizeKB * 1024 + 1024 * 1024 * 1; // stashSize + 1MB\n if (this._bufferSize < bufferSize) {\n this._expandBuffer(bufferSize);\n }\n this._stashSize = stashSizeKB * 1024;\n };\n IOController.prototype._dispatchChunks = function (chunks, byteStart) {\n this._currentRange.to = byteStart + chunks.byteLength - 1;\n return this._onDataArrival(chunks, byteStart);\n };\n IOController.prototype._onURLRedirect = function (redirectedURL) {\n this._redirectedURL = redirectedURL;\n if (this._onRedirect) {\n this._onRedirect(redirectedURL);\n }\n };\n IOController.prototype._onContentLengthKnown = function (contentLength) {\n if (contentLength && this._fullRequestFlag) {\n this._totalLength = contentLength;\n this._fullRequestFlag = false;\n }\n };\n IOController.prototype._onLoaderChunkArrival = function (chunk, byteStart, receivedLength) {\n if (!this._onDataArrival) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_9__.IllegalStateException('IOController: No existing consumer (onDataArrival) callback!');\n }\n if (this._paused) {\n return;\n }\n if (this._isEarlyEofReconnecting) {\n // Auto-reconnect for EarlyEof succeed, notify to upper-layer by callback\n this._isEarlyEofReconnecting = false;\n if (this._onRecoveredEarlyEof) {\n this._onRecoveredEarlyEof();\n }\n }\n this._speedSampler.addBytes(chunk.byteLength);\n // adjust stash buffer size according to network speed dynamically\n var KBps = this._speedSampler.lastSecondKBps;\n if (KBps !== 0) {\n var normalized = this._normalizeSpeed(KBps);\n if (this._speedNormalized !== normalized) {\n this._speedNormalized = normalized;\n this._adjustStashSize(normalized);\n }\n }\n if (!this._enableStash) { // disable stash\n if (this._stashUsed === 0) {\n // dispatch chunk directly to consumer;\n // check ret value (consumed bytes) and stash unconsumed to stashBuffer\n var consumed = this._dispatchChunks(chunk, byteStart);\n if (consumed < chunk.byteLength) { // unconsumed data remain.\n var remain = chunk.byteLength - consumed;\n if (remain > this._bufferSize) {\n this._expandBuffer(remain);\n }\n var stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n stashArray.set(new Uint8Array(chunk, consumed), 0);\n this._stashUsed += remain;\n this._stashByteStart = byteStart + consumed;\n }\n }\n else {\n // else: Merge chunk into stashBuffer, and dispatch stashBuffer to consumer.\n if (this._stashUsed + chunk.byteLength > this._bufferSize) {\n this._expandBuffer(this._stashUsed + chunk.byteLength);\n }\n var stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n stashArray.set(new Uint8Array(chunk), this._stashUsed);\n this._stashUsed += chunk.byteLength;\n var consumed = this._dispatchChunks(this._stashBuffer.slice(0, this._stashUsed), this._stashByteStart);\n if (consumed < this._stashUsed && consumed > 0) { // unconsumed data remain\n var remainArray = new Uint8Array(this._stashBuffer, consumed);\n stashArray.set(remainArray, 0);\n }\n this._stashUsed -= consumed;\n this._stashByteStart += consumed;\n }\n }\n else { // enable stash\n if (this._stashUsed === 0 && this._stashByteStart === 0) { // seeked? or init chunk?\n // This is the first chunk after seek action\n this._stashByteStart = byteStart;\n }\n if (this._stashUsed + chunk.byteLength <= this._stashSize) {\n // just stash\n var stashArray = new Uint8Array(this._stashBuffer, 0, this._stashSize);\n stashArray.set(new Uint8Array(chunk), this._stashUsed);\n this._stashUsed += chunk.byteLength;\n }\n else { // stashUsed + chunkSize > stashSize, size limit exceeded\n var stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n if (this._stashUsed > 0) { // There're stash datas in buffer\n // dispatch the whole stashBuffer, and stash remain data\n // then append chunk to stashBuffer (stash)\n var buffer = this._stashBuffer.slice(0, this._stashUsed);\n var consumed = this._dispatchChunks(buffer, this._stashByteStart);\n if (consumed < buffer.byteLength) {\n if (consumed > 0) {\n var remainArray = new Uint8Array(buffer, consumed);\n stashArray.set(remainArray, 0);\n this._stashUsed = remainArray.byteLength;\n this._stashByteStart += consumed;\n }\n }\n else {\n this._stashUsed = 0;\n this._stashByteStart += consumed;\n }\n if (this._stashUsed + chunk.byteLength > this._bufferSize) {\n this._expandBuffer(this._stashUsed + chunk.byteLength);\n stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n }\n stashArray.set(new Uint8Array(chunk), this._stashUsed);\n this._stashUsed += chunk.byteLength;\n }\n else { // stash buffer empty, but chunkSize > stashSize (oh, holy shit)\n // dispatch chunk directly and stash remain data\n var consumed = this._dispatchChunks(chunk, byteStart);\n if (consumed < chunk.byteLength) {\n var remain = chunk.byteLength - consumed;\n if (remain > this._bufferSize) {\n this._expandBuffer(remain);\n stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n }\n stashArray.set(new Uint8Array(chunk, consumed), 0);\n this._stashUsed += remain;\n this._stashByteStart = byteStart + consumed;\n }\n }\n }\n }\n };\n IOController.prototype._flushStashBuffer = function (dropUnconsumed) {\n if (this._stashUsed > 0) {\n var buffer = this._stashBuffer.slice(0, this._stashUsed);\n var consumed = this._dispatchChunks(buffer, this._stashByteStart);\n var remain = buffer.byteLength - consumed;\n if (consumed < buffer.byteLength) {\n if (dropUnconsumed) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, remain + \" bytes unconsumed data remain when flush buffer, dropped\");\n }\n else {\n if (consumed > 0) {\n var stashArray = new Uint8Array(this._stashBuffer, 0, this._bufferSize);\n var remainArray = new Uint8Array(buffer, consumed);\n stashArray.set(remainArray, 0);\n this._stashUsed = remainArray.byteLength;\n this._stashByteStart += consumed;\n }\n return 0;\n }\n }\n this._stashUsed = 0;\n this._stashByteStart = 0;\n return remain;\n }\n return 0;\n };\n IOController.prototype._onLoaderComplete = function (from, to) {\n // Force-flush stash buffer, and drop unconsumed data\n this._flushStashBuffer(true);\n if (this._onComplete) {\n this._onComplete(this._extraData);\n }\n };\n IOController.prototype._onLoaderError = function (type, data) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.e(this.TAG, \"Loader error, code = \" + data.code + \", msg = \" + data.msg);\n this._flushStashBuffer(false);\n if (this._isEarlyEofReconnecting) {\n // Auto-reconnect for EarlyEof failed, throw UnrecoverableEarlyEof error to upper-layer\n this._isEarlyEofReconnecting = false;\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.UNRECOVERABLE_EARLY_EOF;\n }\n switch (type) {\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.EARLY_EOF: {\n if (!this._config.isLive) {\n // Do internal http reconnect if not live stream\n if (this._totalLength) {\n var nextFrom = this._currentRange.to + 1;\n if (nextFrom < this._totalLength) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Connection lost, trying reconnect...');\n this._isEarlyEofReconnecting = true;\n this._internalSeek(nextFrom, false);\n }\n return;\n }\n // else: We don't know totalLength, throw UnrecoverableEarlyEof\n }\n // live stream: throw UnrecoverableEarlyEof error to upper-layer\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.UNRECOVERABLE_EARLY_EOF;\n break;\n }\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.UNRECOVERABLE_EARLY_EOF:\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.CONNECTING_TIMEOUT:\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.HTTP_STATUS_CODE_INVALID:\n case _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.EXCEPTION:\n break;\n }\n if (this._onError) {\n this._onError(type, data);\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_9__.RuntimeException('IOException: ' + data.msg);\n }\n };\n return IOController;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (IOController);\n\n\n/***/ }),\n\n/***/ \"./src/io/loader.js\":\n/*!**************************!*\\\n !*** ./src/io/loader.js ***!\n \\**************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"LoaderStatus\": function() { return /* binding */ LoaderStatus; },\n/* harmony export */ \"LoaderErrors\": function() { return /* binding */ LoaderErrors; },\n/* harmony export */ \"BaseLoader\": function() { return /* binding */ BaseLoader; }\n/* harmony export */ });\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar LoaderStatus = {\n kIdle: 0,\n kConnecting: 1,\n kBuffering: 2,\n kError: 3,\n kComplete: 4\n};\nvar LoaderErrors = {\n OK: 'OK',\n EXCEPTION: 'Exception',\n HTTP_STATUS_CODE_INVALID: 'HttpStatusCodeInvalid',\n CONNECTING_TIMEOUT: 'ConnectingTimeout',\n EARLY_EOF: 'EarlyEof',\n UNRECOVERABLE_EARLY_EOF: 'UnrecoverableEarlyEof'\n};\n/* Loader has callbacks which have following prototypes:\n * function onContentLengthKnown(contentLength: number): void\n * function onURLRedirect(url: string): void\n * function onDataArrival(chunk: ArrayBuffer, byteStart: number, receivedLength: number): void\n * function onError(errorType: number, errorInfo: {code: number, msg: string}): void\n * function onComplete(rangeFrom: number, rangeTo: number): void\n */\nvar BaseLoader = /** @class */ (function () {\n function BaseLoader(typeName) {\n this._type = typeName || 'undefined';\n this._status = LoaderStatus.kIdle;\n this._needStash = false;\n // callbacks\n this._onContentLengthKnown = null;\n this._onURLRedirect = null;\n this._onDataArrival = null;\n this._onError = null;\n this._onComplete = null;\n }\n BaseLoader.prototype.destroy = function () {\n this._status = LoaderStatus.kIdle;\n this._onContentLengthKnown = null;\n this._onURLRedirect = null;\n this._onDataArrival = null;\n this._onError = null;\n this._onComplete = null;\n };\n BaseLoader.prototype.isWorking = function () {\n return this._status === LoaderStatus.kConnecting || this._status === LoaderStatus.kBuffering;\n };\n Object.defineProperty(BaseLoader.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseLoader.prototype, \"status\", {\n get: function () {\n return this._status;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseLoader.prototype, \"needStashBuffer\", {\n get: function () {\n return this._needStash;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseLoader.prototype, \"onContentLengthKnown\", {\n get: function () {\n return this._onContentLengthKnown;\n },\n set: function (callback) {\n this._onContentLengthKnown = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseLoader.prototype, \"onURLRedirect\", {\n get: function () {\n return this._onURLRedirect;\n },\n set: function (callback) {\n this._onURLRedirect = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseLoader.prototype, \"onDataArrival\", {\n get: function () {\n return this._onDataArrival;\n },\n set: function (callback) {\n this._onDataArrival = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseLoader.prototype, \"onError\", {\n get: function () {\n return this._onError;\n },\n set: function (callback) {\n this._onError = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseLoader.prototype, \"onComplete\", {\n get: function () {\n return this._onComplete;\n },\n set: function (callback) {\n this._onComplete = callback;\n },\n enumerable: false,\n configurable: true\n });\n // pure virtual\n BaseLoader.prototype.open = function (dataSource, range) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__.NotImplementedException('Unimplemented abstract function!');\n };\n BaseLoader.prototype.abort = function () {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_0__.NotImplementedException('Unimplemented abstract function!');\n };\n return BaseLoader;\n}());\n\n\n\n/***/ }),\n\n/***/ \"./src/io/param-seek-handler.js\":\n/*!**************************************!*\\\n !*** ./src/io/param-seek-handler.js ***!\n \\**************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ParamSeekHandler = /** @class */ (function () {\n function ParamSeekHandler(paramStart, paramEnd) {\n this._startName = paramStart;\n this._endName = paramEnd;\n }\n ParamSeekHandler.prototype.getConfig = function (baseUrl, range) {\n var url = baseUrl;\n if (range.from !== 0 || range.to !== -1) {\n var needAnd = true;\n if (url.indexOf('?') === -1) {\n url += '?';\n needAnd = false;\n }\n if (needAnd) {\n url += '&';\n }\n url += this._startName + \"=\" + range.from.toString();\n if (range.to !== -1) {\n url += \"&\" + this._endName + \"=\" + range.to.toString();\n }\n }\n return {\n url: url,\n headers: {}\n };\n };\n ParamSeekHandler.prototype.removeURLParameters = function (seekedURL) {\n var baseURL = seekedURL.split('?')[0];\n var params = undefined;\n var queryIndex = seekedURL.indexOf('?');\n if (queryIndex !== -1) {\n params = seekedURL.substring(queryIndex + 1);\n }\n var resultParams = '';\n if (params != undefined && params.length > 0) {\n var pairs = params.split('&');\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i].split('=');\n var requireAnd = (i > 0);\n if (pair[0] !== this._startName && pair[0] !== this._endName) {\n if (requireAnd) {\n resultParams += '&';\n }\n resultParams += pairs[i];\n }\n }\n }\n return (resultParams.length === 0) ? baseURL : baseURL + '?' + resultParams;\n };\n return ParamSeekHandler;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (ParamSeekHandler);\n\n\n/***/ }),\n\n/***/ \"./src/io/range-seek-handler.js\":\n/*!**************************************!*\\\n !*** ./src/io/range-seek-handler.js ***!\n \\**************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar RangeSeekHandler = /** @class */ (function () {\n function RangeSeekHandler(zeroStart) {\n this._zeroStart = zeroStart || false;\n }\n RangeSeekHandler.prototype.getConfig = function (url, range) {\n var headers = {};\n if (range.from !== 0 || range.to !== -1) {\n var param = void 0;\n if (range.to !== -1) {\n param = \"bytes=\" + range.from.toString() + \"-\" + range.to.toString();\n }\n else {\n param = \"bytes=\" + range.from.toString() + \"-\";\n }\n headers['Range'] = param;\n }\n else if (this._zeroStart) {\n headers['Range'] = 'bytes=0-';\n }\n return {\n url: url,\n headers: headers\n };\n };\n RangeSeekHandler.prototype.removeURLParameters = function (seekedURL) {\n return seekedURL;\n };\n return RangeSeekHandler;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (RangeSeekHandler);\n\n\n/***/ }),\n\n/***/ \"./src/io/speed-sampler.js\":\n/*!*********************************!*\\\n !*** ./src/io/speed-sampler.js ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Utility class to calculate realtime network I/O speed\nvar SpeedSampler = /** @class */ (function () {\n function SpeedSampler() {\n // milliseconds\n this._firstCheckpoint = 0;\n this._lastCheckpoint = 0;\n this._intervalBytes = 0;\n this._totalBytes = 0;\n this._lastSecondBytes = 0;\n // compatibility detection\n if (self.performance && self.performance.now) {\n this._now = self.performance.now.bind(self.performance);\n }\n else {\n this._now = Date.now;\n }\n }\n SpeedSampler.prototype.reset = function () {\n this._firstCheckpoint = this._lastCheckpoint = 0;\n this._totalBytes = this._intervalBytes = 0;\n this._lastSecondBytes = 0;\n };\n SpeedSampler.prototype.addBytes = function (bytes) {\n if (this._firstCheckpoint === 0) {\n this._firstCheckpoint = this._now();\n this._lastCheckpoint = this._firstCheckpoint;\n this._intervalBytes += bytes;\n this._totalBytes += bytes;\n }\n else if (this._now() - this._lastCheckpoint < 1000) {\n this._intervalBytes += bytes;\n this._totalBytes += bytes;\n }\n else { // duration >= 1000\n this._lastSecondBytes = this._intervalBytes;\n this._intervalBytes = bytes;\n this._totalBytes += bytes;\n this._lastCheckpoint = this._now();\n }\n };\n Object.defineProperty(SpeedSampler.prototype, \"currentKBps\", {\n get: function () {\n this.addBytes(0);\n var durationSeconds = (this._now() - this._lastCheckpoint) / 1000;\n if (durationSeconds == 0)\n durationSeconds = 1;\n return (this._intervalBytes / durationSeconds) / 1024;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SpeedSampler.prototype, \"lastSecondKBps\", {\n get: function () {\n this.addBytes(0);\n if (this._lastSecondBytes !== 0) {\n return this._lastSecondBytes / 1024;\n }\n else { // lastSecondBytes === 0\n if (this._now() - this._lastCheckpoint >= 500) {\n // if time interval since last checkpoint has exceeded 500ms\n // the speed is nearly accurate\n return this.currentKBps;\n }\n else {\n // We don't know\n return 0;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SpeedSampler.prototype, \"averageKBps\", {\n get: function () {\n var durationSeconds = (this._now() - this._firstCheckpoint) / 1000;\n return (this._totalBytes / durationSeconds) / 1024;\n },\n enumerable: false,\n configurable: true\n });\n return SpeedSampler;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (SpeedSampler);\n\n\n/***/ }),\n\n/***/ \"./src/io/websocket-loader.js\":\n/*!************************************!*\\\n !*** ./src/io/websocket-loader.js ***!\n \\************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loader.js */ \"./src/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n// For FLV over WebSocket live stream\nvar WebSocketLoader = /** @class */ (function (_super) {\n __extends(WebSocketLoader, _super);\n function WebSocketLoader() {\n var _this = _super.call(this, 'websocket-loader') || this;\n _this.TAG = 'WebSocketLoader';\n _this._needStash = true;\n _this._ws = null;\n _this._requestAbort = false;\n _this._receivedLength = 0;\n return _this;\n }\n WebSocketLoader.isSupported = function () {\n try {\n return (typeof self.WebSocket !== 'undefined');\n }\n catch (e) {\n return false;\n }\n };\n WebSocketLoader.prototype.destroy = function () {\n if (this._ws) {\n this.abort();\n }\n _super.prototype.destroy.call(this);\n };\n WebSocketLoader.prototype.open = function (dataSource) {\n try {\n var ws = this._ws = new self.WebSocket(dataSource.url);\n ws.binaryType = 'arraybuffer';\n ws.onopen = this._onWebSocketOpen.bind(this);\n ws.onclose = this._onWebSocketClose.bind(this);\n ws.onmessage = this._onWebSocketMessage.bind(this);\n ws.onerror = this._onWebSocketError.bind(this);\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderStatus.kConnecting;\n }\n catch (e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderStatus.kError;\n var info = { code: e.code, msg: e.message };\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderErrors.EXCEPTION, info);\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_1__.RuntimeException(info.msg);\n }\n }\n };\n WebSocketLoader.prototype.abort = function () {\n var ws = this._ws;\n if (ws && (ws.readyState === 0 || ws.readyState === 1)) { // CONNECTING || OPEN\n this._requestAbort = true;\n ws.close();\n }\n this._ws = null;\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderStatus.kComplete;\n };\n WebSocketLoader.prototype._onWebSocketOpen = function (e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderStatus.kBuffering;\n };\n WebSocketLoader.prototype._onWebSocketClose = function (e) {\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n }\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderStatus.kComplete;\n if (this._onComplete) {\n this._onComplete(0, this._receivedLength - 1);\n }\n };\n WebSocketLoader.prototype._onWebSocketMessage = function (e) {\n var _this = this;\n if (e.data instanceof ArrayBuffer) {\n this._dispatchArrayBuffer(e.data);\n }\n else if (e.data instanceof Blob) {\n var reader_1 = new FileReader();\n reader_1.onload = function () {\n _this._dispatchArrayBuffer(reader_1.result);\n };\n reader_1.readAsArrayBuffer(e.data);\n }\n else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderStatus.kError;\n var info = { code: -1, msg: 'Unsupported WebSocket message type: ' + e.data.constructor.name };\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderErrors.EXCEPTION, info);\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_1__.RuntimeException(info.msg);\n }\n }\n };\n WebSocketLoader.prototype._dispatchArrayBuffer = function (arraybuffer) {\n var chunk = arraybuffer;\n var byteStart = this._receivedLength;\n this._receivedLength += chunk.byteLength;\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n };\n WebSocketLoader.prototype._onWebSocketError = function (e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderStatus.kError;\n var info = {\n code: e.code,\n msg: e.message\n };\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderErrors.EXCEPTION, info);\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_1__.RuntimeException(info.msg);\n }\n };\n return WebSocketLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_0__.BaseLoader));\n/* harmony default export */ __webpack_exports__[\"default\"] = (WebSocketLoader);\n\n\n/***/ }),\n\n/***/ \"./src/io/xhr-moz-chunked-loader.js\":\n/*!******************************************!*\\\n !*** ./src/io/xhr-moz-chunked-loader.js ***!\n \\******************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loader.js */ \"./src/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n// For FireFox browser which supports `xhr.responseType = 'moz-chunked-arraybuffer'`\nvar MozChunkedLoader = /** @class */ (function (_super) {\n __extends(MozChunkedLoader, _super);\n function MozChunkedLoader(seekHandler, config) {\n var _this = _super.call(this, 'xhr-moz-chunked-loader') || this;\n _this.TAG = 'MozChunkedLoader';\n _this._seekHandler = seekHandler;\n _this._config = config;\n _this._needStash = true;\n _this._xhr = null;\n _this._requestAbort = false;\n _this._contentLength = null;\n _this._receivedLength = 0;\n return _this;\n }\n MozChunkedLoader.isSupported = function () {\n try {\n var xhr = new XMLHttpRequest();\n // Firefox 37- requires .open() to be called before setting responseType\n xhr.open('GET', 'https://example.com', true);\n xhr.responseType = 'moz-chunked-arraybuffer';\n return (xhr.responseType === 'moz-chunked-arraybuffer');\n }\n catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w('MozChunkedLoader', e.message);\n return false;\n }\n };\n MozChunkedLoader.prototype.destroy = function () {\n if (this.isWorking()) {\n this.abort();\n }\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onloadend = null;\n this._xhr.onerror = null;\n this._xhr = null;\n }\n _super.prototype.destroy.call(this);\n };\n MozChunkedLoader.prototype.open = function (dataSource, range) {\n this._dataSource = dataSource;\n this._range = range;\n var sourceURL = dataSource.url;\n if (this._config.reuseRedirectedURL && dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n var seekConfig = this._seekHandler.getConfig(sourceURL, range);\n this._requestURL = seekConfig.url;\n var xhr = this._xhr = new XMLHttpRequest();\n xhr.open('GET', seekConfig.url, true);\n xhr.responseType = 'moz-chunked-arraybuffer';\n xhr.onreadystatechange = this._onReadyStateChange.bind(this);\n xhr.onprogress = this._onProgress.bind(this);\n xhr.onloadend = this._onLoadEnd.bind(this);\n xhr.onerror = this._onXhrError.bind(this);\n // cors is auto detected and enabled by xhr\n // withCredentials is disabled by default\n if (dataSource.withCredentials) {\n xhr.withCredentials = true;\n }\n if (typeof seekConfig.headers === 'object') {\n var headers = seekConfig.headers;\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n // add additional headers\n if (typeof this._config.headers === 'object') {\n var headers = this._config.headers;\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kConnecting;\n xhr.send();\n };\n MozChunkedLoader.prototype.abort = function () {\n this._requestAbort = true;\n if (this._xhr) {\n this._xhr.abort();\n }\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kComplete;\n };\n MozChunkedLoader.prototype._onReadyStateChange = function (e) {\n var xhr = e.target;\n if (xhr.readyState === 2) { // HEADERS_RECEIVED\n if (xhr.responseURL != undefined && xhr.responseURL !== this._requestURL) {\n if (this._onURLRedirect) {\n var redirectedURL = this._seekHandler.removeURLParameters(xhr.responseURL);\n this._onURLRedirect(redirectedURL);\n }\n }\n if (xhr.status !== 0 && (xhr.status < 200 || xhr.status > 299)) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kError;\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: xhr.status, msg: xhr.statusText });\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.RuntimeException('MozChunkedLoader: Http code invalid, ' + xhr.status + ' ' + xhr.statusText);\n }\n }\n else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kBuffering;\n }\n }\n };\n MozChunkedLoader.prototype._onProgress = function (e) {\n if (this._status === _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kError) {\n // Ignore error response\n return;\n }\n if (this._contentLength === null) {\n if (e.total !== null && e.total !== 0) {\n this._contentLength = e.total;\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n }\n var chunk = e.target.response;\n var byteStart = this._range.from + this._receivedLength;\n this._receivedLength += chunk.byteLength;\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n };\n MozChunkedLoader.prototype._onLoadEnd = function (e) {\n if (this._requestAbort === true) {\n this._requestAbort = false;\n return;\n }\n else if (this._status === _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kError) {\n return;\n }\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kComplete;\n if (this._onComplete) {\n this._onComplete(this._range.from, this._range.from + this._receivedLength - 1);\n }\n };\n MozChunkedLoader.prototype._onXhrError = function (e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderStatus.kError;\n var type = 0;\n var info = null;\n if (this._contentLength && e.loaded < this._contentLength) {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderErrors.EARLY_EOF;\n info = { code: -1, msg: 'Moz-Chunked stream meet Early-Eof' };\n }\n else {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_1__.LoaderErrors.EXCEPTION;\n info = { code: -1, msg: e.constructor.name + ' ' + e.type };\n }\n if (this._onError) {\n this._onError(type, info);\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_2__.RuntimeException(info.msg);\n }\n };\n return MozChunkedLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_1__.BaseLoader));\n/* harmony default export */ __webpack_exports__[\"default\"] = (MozChunkedLoader);\n\n\n/***/ }),\n\n/***/ \"./src/io/xhr-range-loader.js\":\n/*!************************************!*\\\n !*** ./src/io/xhr-range-loader.js ***!\n \\************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./speed-sampler.js */ \"./src/io/speed-sampler.js\");\n/* harmony import */ var _loader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loader.js */ \"./src/io/loader.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n// Universal IO Loader, implemented by adding Range header in xhr's request header\nvar RangeLoader = /** @class */ (function (_super) {\n __extends(RangeLoader, _super);\n function RangeLoader(seekHandler, config) {\n var _this = _super.call(this, 'xhr-range-loader') || this;\n _this.TAG = 'RangeLoader';\n _this._seekHandler = seekHandler;\n _this._config = config;\n _this._needStash = false;\n _this._chunkSizeKBList = [\n 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192\n ];\n _this._currentChunkSizeKB = 384;\n _this._currentSpeedNormalized = 0;\n _this._zeroSpeedChunkCount = 0;\n _this._xhr = null;\n _this._speedSampler = new _speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__.default();\n _this._requestAbort = false;\n _this._waitForTotalLength = false;\n _this._totalLengthReceived = false;\n _this._currentRequestURL = null;\n _this._currentRedirectedURL = null;\n _this._currentRequestRange = null;\n _this._totalLength = null; // size of the entire file\n _this._contentLength = null; // Content-Length of entire request range\n _this._receivedLength = 0; // total received bytes\n _this._lastTimeLoaded = 0; // received bytes of current request sub-range\n return _this;\n }\n RangeLoader.isSupported = function () {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', 'https://example.com', true);\n xhr.responseType = 'arraybuffer';\n return (xhr.responseType === 'arraybuffer');\n }\n catch (e) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w('RangeLoader', e.message);\n return false;\n }\n };\n RangeLoader.prototype.destroy = function () {\n if (this.isWorking()) {\n this.abort();\n }\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onload = null;\n this._xhr.onerror = null;\n this._xhr = null;\n }\n _super.prototype.destroy.call(this);\n };\n Object.defineProperty(RangeLoader.prototype, \"currentSpeed\", {\n get: function () {\n return this._speedSampler.lastSecondKBps;\n },\n enumerable: false,\n configurable: true\n });\n RangeLoader.prototype.open = function (dataSource, range) {\n this._dataSource = dataSource;\n this._range = range;\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus.kConnecting;\n var useRefTotalLength = false;\n if (this._dataSource.filesize != undefined && this._dataSource.filesize !== 0) {\n useRefTotalLength = true;\n this._totalLength = this._dataSource.filesize;\n }\n if (!this._totalLengthReceived && !useRefTotalLength) {\n // We need total filesize\n this._waitForTotalLength = true;\n this._internalOpen(this._dataSource, { from: 0, to: -1 });\n }\n else {\n // We have filesize, start loading\n this._openSubRange();\n }\n };\n RangeLoader.prototype._openSubRange = function () {\n var chunkSize = this._currentChunkSizeKB * 1024;\n var from = this._range.from + this._receivedLength;\n var to = from + chunkSize;\n if (this._contentLength != null) {\n if (to - this._range.from >= this._contentLength) {\n to = this._range.from + this._contentLength - 1;\n }\n }\n this._currentRequestRange = { from: from, to: to };\n this._internalOpen(this._dataSource, this._currentRequestRange);\n };\n RangeLoader.prototype._internalOpen = function (dataSource, range) {\n this._lastTimeLoaded = 0;\n var sourceURL = dataSource.url;\n if (this._config.reuseRedirectedURL) {\n if (this._currentRedirectedURL != undefined) {\n sourceURL = this._currentRedirectedURL;\n }\n else if (dataSource.redirectedURL != undefined) {\n sourceURL = dataSource.redirectedURL;\n }\n }\n var seekConfig = this._seekHandler.getConfig(sourceURL, range);\n this._currentRequestURL = seekConfig.url;\n var xhr = this._xhr = new XMLHttpRequest();\n xhr.open('GET', seekConfig.url, true);\n xhr.responseType = 'arraybuffer';\n xhr.onreadystatechange = this._onReadyStateChange.bind(this);\n xhr.onprogress = this._onProgress.bind(this);\n xhr.onload = this._onLoad.bind(this);\n xhr.onerror = this._onXhrError.bind(this);\n if (dataSource.withCredentials) {\n xhr.withCredentials = true;\n }\n if (typeof seekConfig.headers === 'object') {\n var headers = seekConfig.headers;\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n // add additional headers\n if (typeof this._config.headers === 'object') {\n var headers = this._config.headers;\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n xhr.send();\n };\n RangeLoader.prototype.abort = function () {\n this._requestAbort = true;\n this._internalAbort();\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus.kComplete;\n };\n RangeLoader.prototype._internalAbort = function () {\n if (this._xhr) {\n this._xhr.onreadystatechange = null;\n this._xhr.onprogress = null;\n this._xhr.onload = null;\n this._xhr.onerror = null;\n this._xhr.abort();\n this._xhr = null;\n }\n };\n RangeLoader.prototype._onReadyStateChange = function (e) {\n var xhr = e.target;\n if (xhr.readyState === 2) { // HEADERS_RECEIVED\n if (xhr.responseURL != undefined) { // if the browser support this property\n var redirectedURL = this._seekHandler.removeURLParameters(xhr.responseURL);\n if (xhr.responseURL !== this._currentRequestURL && redirectedURL !== this._currentRedirectedURL) {\n this._currentRedirectedURL = redirectedURL;\n if (this._onURLRedirect) {\n this._onURLRedirect(redirectedURL);\n }\n }\n }\n if ((xhr.status >= 200 && xhr.status <= 299)) {\n if (this._waitForTotalLength) {\n return;\n }\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus.kBuffering;\n }\n else {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus.kError;\n if (this._onError) {\n this._onError(_loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: xhr.status, msg: xhr.statusText });\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__.RuntimeException('RangeLoader: Http code invalid, ' + xhr.status + ' ' + xhr.statusText);\n }\n }\n }\n };\n RangeLoader.prototype._onProgress = function (e) {\n if (this._status === _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus.kError) {\n // Ignore error response\n return;\n }\n if (this._contentLength === null) {\n var openNextRange = false;\n if (this._waitForTotalLength) {\n this._waitForTotalLength = false;\n this._totalLengthReceived = true;\n openNextRange = true;\n var total = e.total;\n this._internalAbort();\n if (total != null & total !== 0) {\n this._totalLength = total;\n }\n }\n // calculate currrent request range's contentLength\n if (this._range.to === -1) {\n this._contentLength = this._totalLength - this._range.from;\n }\n else { // to !== -1\n this._contentLength = this._range.to - this._range.from + 1;\n }\n if (openNextRange) {\n this._openSubRange();\n return;\n }\n if (this._onContentLengthKnown) {\n this._onContentLengthKnown(this._contentLength);\n }\n }\n var delta = e.loaded - this._lastTimeLoaded;\n this._lastTimeLoaded = e.loaded;\n this._speedSampler.addBytes(delta);\n };\n RangeLoader.prototype._normalizeSpeed = function (input) {\n var list = this._chunkSizeKBList;\n var last = list.length - 1;\n var mid = 0;\n var lbound = 0;\n var ubound = last;\n if (input < list[0]) {\n return list[0];\n }\n while (lbound <= ubound) {\n mid = lbound + Math.floor((ubound - lbound) / 2);\n if (mid === last || (input >= list[mid] && input < list[mid + 1])) {\n return list[mid];\n }\n else if (list[mid] < input) {\n lbound = mid + 1;\n }\n else {\n ubound = mid - 1;\n }\n }\n };\n RangeLoader.prototype._onLoad = function (e) {\n if (this._status === _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus.kError) {\n // Ignore error response\n return;\n }\n if (this._waitForTotalLength) {\n this._waitForTotalLength = false;\n return;\n }\n this._lastTimeLoaded = 0;\n var KBps = this._speedSampler.lastSecondKBps;\n if (KBps === 0) {\n this._zeroSpeedChunkCount++;\n if (this._zeroSpeedChunkCount >= 3) {\n // Try get currentKBps after 3 chunks\n KBps = this._speedSampler.currentKBps;\n }\n }\n if (KBps !== 0) {\n var normalized = this._normalizeSpeed(KBps);\n if (this._currentSpeedNormalized !== normalized) {\n this._currentSpeedNormalized = normalized;\n this._currentChunkSizeKB = normalized;\n }\n }\n var chunk = e.target.response;\n var byteStart = this._range.from + this._receivedLength;\n this._receivedLength += chunk.byteLength;\n var reportComplete = false;\n if (this._contentLength != null && this._receivedLength < this._contentLength) {\n // continue load next chunk\n this._openSubRange();\n }\n else {\n reportComplete = true;\n }\n // dispatch received chunk\n if (this._onDataArrival) {\n this._onDataArrival(chunk, byteStart, this._receivedLength);\n }\n if (reportComplete) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus.kComplete;\n if (this._onComplete) {\n this._onComplete(this._range.from, this._range.from + this._receivedLength - 1);\n }\n }\n };\n RangeLoader.prototype._onXhrError = function (e) {\n this._status = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderStatus.kError;\n var type = 0;\n var info = null;\n if (this._contentLength && this._receivedLength > 0\n && this._receivedLength < this._contentLength) {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.EARLY_EOF;\n info = { code: -1, msg: 'RangeLoader meet Early-Eof' };\n }\n else {\n type = _loader_js__WEBPACK_IMPORTED_MODULE_2__.LoaderErrors.EXCEPTION;\n info = { code: -1, msg: e.constructor.name + ' ' + e.type };\n }\n if (this._onError) {\n this._onError(type, info);\n }\n else {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__.RuntimeException(info.msg);\n }\n };\n return RangeLoader;\n}(_loader_js__WEBPACK_IMPORTED_MODULE_2__.BaseLoader));\n/* harmony default export */ __webpack_exports__[\"default\"] = (RangeLoader);\n\n\n/***/ }),\n\n/***/ \"./src/player/flv-player.js\":\n/*!**********************************!*\\\n !*** ./src/player/flv-player.js ***!\n \\**********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/utils/browser.js\");\n/* harmony import */ var _player_events_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./player-events.js */ \"./src/player/player-events.js\");\n/* harmony import */ var _core_transmuxer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/transmuxer.js */ \"./src/core/transmuxer.js\");\n/* harmony import */ var _core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/transmuxing-events.js */ \"./src/core/transmuxing-events.js\");\n/* harmony import */ var _core_mse_controller_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/mse-controller.js */ \"./src/core/mse-controller.js\");\n/* harmony import */ var _core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/mse-events.js */ \"./src/core/mse-events.js\");\n/* harmony import */ var _player_errors_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./player-errors.js */ \"./src/player/player-errors.js\");\n/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../config.js */ \"./src/config.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n\n\n\n\n\nvar FlvPlayer = /** @class */ (function () {\n function FlvPlayer(mediaDataSource, config) {\n this.TAG = 'FlvPlayer';\n this._type = 'FlvPlayer';\n this._emitter = new (events__WEBPACK_IMPORTED_MODULE_0___default())();\n this._config = (0,_config_js__WEBPACK_IMPORTED_MODULE_9__.createDefaultConfig)();\n if (typeof config === 'object') {\n Object.assign(this._config, config);\n }\n if (mediaDataSource.type.toLowerCase() !== 'flv') {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_10__.InvalidArgumentException('FlvPlayer requires an flv MediaDataSource input!');\n }\n if (mediaDataSource.isLive === true) {\n this._config.isLive = true;\n }\n this.e = {\n onvLoadedMetadata: this._onvLoadedMetadata.bind(this),\n onvSeeking: this._onvSeeking.bind(this),\n onvCanPlay: this._onvCanPlay.bind(this),\n onvStalled: this._onvStalled.bind(this),\n onvProgress: this._onvProgress.bind(this)\n };\n if (self.performance && self.performance.now) {\n this._now = self.performance.now.bind(self.performance);\n }\n else {\n this._now = Date.now;\n }\n this._pendingSeekTime = null; // in seconds\n this._requestSetTime = false;\n this._seekpointRecord = null;\n this._progressChecker = null;\n this._mediaDataSource = mediaDataSource;\n this._mediaElement = null;\n this._msectl = null;\n this._transmuxer = null;\n this._mseSourceOpened = false;\n this._hasPendingLoad = false;\n this._receivedCanPlay = false;\n this._mediaInfo = null;\n this._statisticsInfo = null;\n var chromeNeedIDRFix = (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.chrome &&\n (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.version.major < 50 ||\n (_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.version.major === 50 && _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.version.build < 2661)));\n this._alwaysSeekKeyframe = (chromeNeedIDRFix || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.msedge || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.msie) ? true : false;\n if (this._alwaysSeekKeyframe) {\n this._config.accurateSeek = false;\n }\n }\n FlvPlayer.prototype.destroy = function () {\n if (this._progressChecker != null) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n }\n if (this._transmuxer) {\n this.unload();\n }\n if (this._mediaElement) {\n this.detachMediaElement();\n }\n this.e = null;\n this._mediaDataSource = null;\n this._emitter.removeAllListeners();\n this._emitter = null;\n };\n FlvPlayer.prototype.on = function (event, listener) {\n var _this = this;\n if (event === _player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.MEDIA_INFO) {\n if (this._mediaInfo != null) {\n Promise.resolve().then(function () {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.MEDIA_INFO, _this.mediaInfo);\n });\n }\n }\n else if (event === _player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.STATISTICS_INFO) {\n if (this._statisticsInfo != null) {\n Promise.resolve().then(function () {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.STATISTICS_INFO, _this.statisticsInfo);\n });\n }\n }\n this._emitter.addListener(event, listener);\n };\n FlvPlayer.prototype.off = function (event, listener) {\n this._emitter.removeListener(event, listener);\n };\n FlvPlayer.prototype.attachMediaElement = function (mediaElement) {\n var _this = this;\n this._mediaElement = mediaElement;\n mediaElement.addEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n mediaElement.addEventListener('seeking', this.e.onvSeeking);\n mediaElement.addEventListener('canplay', this.e.onvCanPlay);\n mediaElement.addEventListener('stalled', this.e.onvStalled);\n mediaElement.addEventListener('progress', this.e.onvProgress);\n this._msectl = new _core_mse_controller_js__WEBPACK_IMPORTED_MODULE_6__.default(this._config);\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__.default.UPDATE_END, this._onmseUpdateEnd.bind(this));\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__.default.BUFFER_FULL, this._onmseBufferFull.bind(this));\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__.default.SOURCE_OPEN, function () {\n _this._mseSourceOpened = true;\n if (_this._hasPendingLoad) {\n _this._hasPendingLoad = false;\n _this.load();\n }\n });\n this._msectl.on(_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__.default.ERROR, function (info) {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.ERROR, _player_errors_js__WEBPACK_IMPORTED_MODULE_8__.ErrorTypes.MEDIA_ERROR, _player_errors_js__WEBPACK_IMPORTED_MODULE_8__.ErrorDetails.MEDIA_MSE_ERROR, info);\n });\n this._msectl.attachMediaElement(mediaElement);\n if (this._pendingSeekTime != null) {\n try {\n mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n }\n catch (e) {\n // IE11 may throw InvalidStateError if readyState === 0\n // We can defer set currentTime operation after loadedmetadata\n }\n }\n };\n FlvPlayer.prototype.detachMediaElement = function () {\n if (this._mediaElement) {\n this._msectl.detachMediaElement();\n this._mediaElement.removeEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n this._mediaElement.removeEventListener('seeking', this.e.onvSeeking);\n this._mediaElement.removeEventListener('canplay', this.e.onvCanPlay);\n this._mediaElement.removeEventListener('stalled', this.e.onvStalled);\n this._mediaElement.removeEventListener('progress', this.e.onvProgress);\n this._mediaElement = null;\n }\n if (this._msectl) {\n this._msectl.destroy();\n this._msectl = null;\n }\n };\n FlvPlayer.prototype.load = function () {\n var _this = this;\n if (!this._mediaElement) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_10__.IllegalStateException('HTMLMediaElement must be attached before load()!');\n }\n if (this._transmuxer) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_10__.IllegalStateException('FlvPlayer.load() has been called, please call unload() first!');\n }\n if (this._hasPendingLoad) {\n return;\n }\n if (this._config.deferLoadAfterSourceOpen && this._mseSourceOpened === false) {\n this._hasPendingLoad = true;\n return;\n }\n if (this._mediaElement.readyState > 0) {\n this._requestSetTime = true;\n // IE11 may throw InvalidStateError if readyState === 0\n this._mediaElement.currentTime = 0;\n }\n this._transmuxer = new _core_transmuxer_js__WEBPACK_IMPORTED_MODULE_4__.default(this._mediaDataSource, this._config);\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.INIT_SEGMENT, function (type, is) {\n _this._msectl.appendInitSegment(is);\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.MEDIA_SEGMENT, function (type, ms) {\n _this._msectl.appendMediaSegment(ms);\n // lazyLoad check\n if (_this._config.lazyLoad && !_this._config.isLive) {\n var currentTime = _this._mediaElement.currentTime;\n if (ms.info.endDts >= (currentTime + _this._config.lazyLoadMaxDuration) * 1000) {\n if (_this._progressChecker == null) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(_this.TAG, 'Maximum buffering duration exceeded, suspend transmuxing task');\n _this._suspendTransmuxer();\n }\n }\n }\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.LOADING_COMPLETE, function () {\n _this._msectl.endOfStream();\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.LOADING_COMPLETE);\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.RECOVERED_EARLY_EOF, function () {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.RECOVERED_EARLY_EOF);\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.IO_ERROR, function (detail, info) {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.ERROR, _player_errors_js__WEBPACK_IMPORTED_MODULE_8__.ErrorTypes.NETWORK_ERROR, detail, info);\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.DEMUX_ERROR, function (detail, info) {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.ERROR, _player_errors_js__WEBPACK_IMPORTED_MODULE_8__.ErrorTypes.MEDIA_ERROR, detail, { code: -1, msg: info });\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.MEDIA_INFO, function (mediaInfo) {\n _this._mediaInfo = mediaInfo;\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.MEDIA_INFO, Object.assign({}, mediaInfo));\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.METADATA_ARRIVED, function (metadata) {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.METADATA_ARRIVED, metadata);\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.SCRIPTDATA_ARRIVED, function (data) {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.SCRIPTDATA_ARRIVED, data);\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.STATISTICS_INFO, function (statInfo) {\n _this._statisticsInfo = _this._fillStatisticsInfo(statInfo);\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_3__.default.STATISTICS_INFO, Object.assign({}, _this._statisticsInfo));\n });\n this._transmuxer.on(_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__.default.RECOMMEND_SEEKPOINT, function (milliseconds) {\n if (_this._mediaElement && !_this._config.accurateSeek) {\n _this._requestSetTime = true;\n _this._mediaElement.currentTime = milliseconds / 1000;\n }\n });\n this._transmuxer.open();\n };\n FlvPlayer.prototype.unload = function () {\n if (this._mediaElement) {\n this._mediaElement.pause();\n }\n if (this._msectl) {\n this._msectl.seek(0);\n }\n if (this._transmuxer) {\n this._transmuxer.close();\n this._transmuxer.destroy();\n this._transmuxer = null;\n }\n };\n FlvPlayer.prototype.play = function () {\n return this._mediaElement.play();\n };\n FlvPlayer.prototype.pause = function () {\n this._mediaElement.pause();\n };\n Object.defineProperty(FlvPlayer.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FlvPlayer.prototype, \"buffered\", {\n get: function () {\n return this._mediaElement.buffered;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FlvPlayer.prototype, \"duration\", {\n get: function () {\n return this._mediaElement.duration;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FlvPlayer.prototype, \"volume\", {\n get: function () {\n return this._mediaElement.volume;\n },\n set: function (value) {\n this._mediaElement.volume = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FlvPlayer.prototype, \"muted\", {\n get: function () {\n return this._mediaElement.muted;\n },\n set: function (muted) {\n this._mediaElement.muted = muted;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FlvPlayer.prototype, \"currentTime\", {\n get: function () {\n if (this._mediaElement) {\n return this._mediaElement.currentTime;\n }\n return 0;\n },\n set: function (seconds) {\n if (this._mediaElement) {\n this._internalSeek(seconds);\n }\n else {\n this._pendingSeekTime = seconds;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FlvPlayer.prototype, \"mediaInfo\", {\n get: function () {\n return Object.assign({}, this._mediaInfo);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FlvPlayer.prototype, \"statisticsInfo\", {\n get: function () {\n if (this._statisticsInfo == null) {\n this._statisticsInfo = {};\n }\n this._statisticsInfo = this._fillStatisticsInfo(this._statisticsInfo);\n return Object.assign({}, this._statisticsInfo);\n },\n enumerable: false,\n configurable: true\n });\n FlvPlayer.prototype._fillStatisticsInfo = function (statInfo) {\n statInfo.playerType = this._type;\n if (!(this._mediaElement instanceof HTMLVideoElement)) {\n return statInfo;\n }\n var hasQualityInfo = true;\n var decoded = 0;\n var dropped = 0;\n if (this._mediaElement.getVideoPlaybackQuality) {\n var quality = this._mediaElement.getVideoPlaybackQuality();\n decoded = quality.totalVideoFrames;\n dropped = quality.droppedVideoFrames;\n }\n else if (this._mediaElement.webkitDecodedFrameCount != undefined) {\n decoded = this._mediaElement.webkitDecodedFrameCount;\n dropped = this._mediaElement.webkitDroppedFrameCount;\n }\n else {\n hasQualityInfo = false;\n }\n if (hasQualityInfo) {\n statInfo.decodedFrames = decoded;\n statInfo.droppedFrames = dropped;\n }\n return statInfo;\n };\n FlvPlayer.prototype._onmseUpdateEnd = function () {\n if (!this._config.lazyLoad || this._config.isLive) {\n return;\n }\n var buffered = this._mediaElement.buffered;\n var currentTime = this._mediaElement.currentTime;\n var currentRangeStart = 0;\n var currentRangeEnd = 0;\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i);\n if (start <= currentTime && currentTime < end) {\n currentRangeStart = start;\n currentRangeEnd = end;\n break;\n }\n }\n if (currentRangeEnd >= currentTime + this._config.lazyLoadMaxDuration && this._progressChecker == null) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, 'Maximum buffering duration exceeded, suspend transmuxing task');\n this._suspendTransmuxer();\n }\n };\n FlvPlayer.prototype._onmseBufferFull = function () {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, 'MSE SourceBuffer is full, suspend transmuxing task');\n if (this._progressChecker == null) {\n this._suspendTransmuxer();\n }\n };\n FlvPlayer.prototype._suspendTransmuxer = function () {\n if (this._transmuxer) {\n this._transmuxer.pause();\n if (this._progressChecker == null) {\n this._progressChecker = window.setInterval(this._checkProgressAndResume.bind(this), 1000);\n }\n }\n };\n FlvPlayer.prototype._checkProgressAndResume = function () {\n var currentTime = this._mediaElement.currentTime;\n var buffered = this._mediaElement.buffered;\n var needResume = false;\n for (var i = 0; i < buffered.length; i++) {\n var from = buffered.start(i);\n var to = buffered.end(i);\n if (currentTime >= from && currentTime < to) {\n if (currentTime >= to - this._config.lazyLoadRecoverDuration) {\n needResume = true;\n }\n break;\n }\n }\n if (needResume) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n if (needResume) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.v(this.TAG, 'Continue loading from paused position');\n this._transmuxer.resume();\n }\n }\n };\n FlvPlayer.prototype._isTimepointBuffered = function (seconds) {\n var buffered = this._mediaElement.buffered;\n for (var i = 0; i < buffered.length; i++) {\n var from = buffered.start(i);\n var to = buffered.end(i);\n if (seconds >= from && seconds < to) {\n return true;\n }\n }\n return false;\n };\n FlvPlayer.prototype._internalSeek = function (seconds) {\n var directSeek = this._isTimepointBuffered(seconds);\n var directSeekBegin = false;\n var directSeekBeginTime = 0;\n if (seconds < 1.0 && this._mediaElement.buffered.length > 0) {\n var videoBeginTime = this._mediaElement.buffered.start(0);\n if ((videoBeginTime < 1.0 && seconds < videoBeginTime) || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.safari) {\n directSeekBegin = true;\n // also workaround for Safari: Seek to 0 may cause video stuck, use 0.1 to avoid\n directSeekBeginTime = _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.safari ? 0.1 : videoBeginTime;\n }\n }\n if (directSeekBegin) { // seek to video begin, set currentTime directly if beginPTS buffered\n this._requestSetTime = true;\n this._mediaElement.currentTime = directSeekBeginTime;\n }\n else if (directSeek) { // buffered position\n if (!this._alwaysSeekKeyframe) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = seconds;\n }\n else {\n var idr = this._msectl.getNearestKeyframe(Math.floor(seconds * 1000));\n this._requestSetTime = true;\n if (idr != null) {\n this._mediaElement.currentTime = idr.dts / 1000;\n }\n else {\n this._mediaElement.currentTime = seconds;\n }\n }\n if (this._progressChecker != null) {\n this._checkProgressAndResume();\n }\n }\n else {\n if (this._progressChecker != null) {\n window.clearInterval(this._progressChecker);\n this._progressChecker = null;\n }\n this._msectl.seek(seconds);\n this._transmuxer.seek(Math.floor(seconds * 1000)); // in milliseconds\n // no need to set mediaElement.currentTime if non-accurateSeek,\n // just wait for the recommend_seekpoint callback\n if (this._config.accurateSeek) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = seconds;\n }\n }\n };\n FlvPlayer.prototype._checkAndApplyUnbufferedSeekpoint = function () {\n if (this._seekpointRecord) {\n if (this._seekpointRecord.recordTime <= this._now() - 100) {\n var target = this._mediaElement.currentTime;\n this._seekpointRecord = null;\n if (!this._isTimepointBuffered(target)) {\n if (this._progressChecker != null) {\n window.clearTimeout(this._progressChecker);\n this._progressChecker = null;\n }\n // .currentTime is consists with .buffered timestamp\n // Chrome/Edge use DTS, while FireFox/Safari use PTS\n this._msectl.seek(target);\n this._transmuxer.seek(Math.floor(target * 1000));\n // set currentTime if accurateSeek, or wait for recommend_seekpoint callback\n if (this._config.accurateSeek) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = target;\n }\n }\n }\n else {\n window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this), 50);\n }\n }\n };\n FlvPlayer.prototype._checkAndResumeStuckPlayback = function (stalled) {\n var media = this._mediaElement;\n if (stalled || !this._receivedCanPlay || media.readyState < 2) { // HAVE_CURRENT_DATA\n var buffered = media.buffered;\n if (buffered.length > 0 && media.currentTime < buffered.start(0)) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.w(this.TAG, \"Playback seems stuck at \" + media.currentTime + \", seek to \" + buffered.start(0));\n this._requestSetTime = true;\n this._mediaElement.currentTime = buffered.start(0);\n this._mediaElement.removeEventListener('progress', this.e.onvProgress);\n }\n }\n else {\n // Playback didn't stuck, remove progress event listener\n this._mediaElement.removeEventListener('progress', this.e.onvProgress);\n }\n };\n FlvPlayer.prototype._onvLoadedMetadata = function (e) {\n if (this._pendingSeekTime != null) {\n this._mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n }\n };\n FlvPlayer.prototype._onvSeeking = function (e) {\n var target = this._mediaElement.currentTime;\n var buffered = this._mediaElement.buffered;\n if (this._requestSetTime) {\n this._requestSetTime = false;\n return;\n }\n if (target < 1.0 && buffered.length > 0) {\n // seek to video begin, set currentTime directly if beginPTS buffered\n var videoBeginTime = buffered.start(0);\n if ((videoBeginTime < 1.0 && target < videoBeginTime) || _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.safari) {\n this._requestSetTime = true;\n // also workaround for Safari: Seek to 0 may cause video stuck, use 0.1 to avoid\n this._mediaElement.currentTime = _utils_browser_js__WEBPACK_IMPORTED_MODULE_2__.default.safari ? 0.1 : videoBeginTime;\n return;\n }\n }\n if (this._isTimepointBuffered(target)) {\n if (this._alwaysSeekKeyframe) {\n var idr = this._msectl.getNearestKeyframe(Math.floor(target * 1000));\n if (idr != null) {\n this._requestSetTime = true;\n this._mediaElement.currentTime = idr.dts / 1000;\n }\n }\n if (this._progressChecker != null) {\n this._checkProgressAndResume();\n }\n return;\n }\n this._seekpointRecord = {\n seekPoint: target,\n recordTime: this._now()\n };\n window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this), 50);\n };\n FlvPlayer.prototype._onvCanPlay = function (e) {\n this._receivedCanPlay = true;\n this._mediaElement.removeEventListener('canplay', this.e.onvCanPlay);\n };\n FlvPlayer.prototype._onvStalled = function (e) {\n this._checkAndResumeStuckPlayback(true);\n };\n FlvPlayer.prototype._onvProgress = function (e) {\n this._checkAndResumeStuckPlayback();\n };\n return FlvPlayer;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (FlvPlayer);\n\n\n/***/ }),\n\n/***/ \"./src/player/native-player.js\":\n/*!*************************************!*\\\n !*** ./src/player/native-player.js ***!\n \\*************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _player_events_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./player-events.js */ \"./src/player/player-events.js\");\n/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../config.js */ \"./src/config.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n// Player wrapper for browser's native player (HTMLVideoElement) without MediaSource src. \nvar NativePlayer = /** @class */ (function () {\n function NativePlayer(mediaDataSource, config) {\n this.TAG = 'NativePlayer';\n this._type = 'NativePlayer';\n this._emitter = new (events__WEBPACK_IMPORTED_MODULE_0___default())();\n this._config = (0,_config_js__WEBPACK_IMPORTED_MODULE_2__.createDefaultConfig)();\n if (typeof config === 'object') {\n Object.assign(this._config, config);\n }\n if (mediaDataSource.type.toLowerCase() === 'flv') {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__.InvalidArgumentException('NativePlayer does\\'t support flv MediaDataSource input!');\n }\n if (mediaDataSource.hasOwnProperty('segments')) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__.InvalidArgumentException(\"NativePlayer(\" + mediaDataSource.type + \") doesn't support multipart playback!\");\n }\n this.e = {\n onvLoadedMetadata: this._onvLoadedMetadata.bind(this)\n };\n this._pendingSeekTime = null;\n this._statisticsReporter = null;\n this._mediaDataSource = mediaDataSource;\n this._mediaElement = null;\n }\n NativePlayer.prototype.destroy = function () {\n if (this._mediaElement) {\n this.unload();\n this.detachMediaElement();\n }\n this.e = null;\n this._mediaDataSource = null;\n this._emitter.removeAllListeners();\n this._emitter = null;\n };\n NativePlayer.prototype.on = function (event, listener) {\n var _this = this;\n if (event === _player_events_js__WEBPACK_IMPORTED_MODULE_1__.default.MEDIA_INFO) {\n if (this._mediaElement != null && this._mediaElement.readyState !== 0) { // HAVE_NOTHING\n Promise.resolve().then(function () {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_1__.default.MEDIA_INFO, _this.mediaInfo);\n });\n }\n }\n else if (event === _player_events_js__WEBPACK_IMPORTED_MODULE_1__.default.STATISTICS_INFO) {\n if (this._mediaElement != null && this._mediaElement.readyState !== 0) {\n Promise.resolve().then(function () {\n _this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_1__.default.STATISTICS_INFO, _this.statisticsInfo);\n });\n }\n }\n this._emitter.addListener(event, listener);\n };\n NativePlayer.prototype.off = function (event, listener) {\n this._emitter.removeListener(event, listener);\n };\n NativePlayer.prototype.attachMediaElement = function (mediaElement) {\n this._mediaElement = mediaElement;\n mediaElement.addEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n if (this._pendingSeekTime != null) {\n try {\n mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n }\n catch (e) {\n // IE11 may throw InvalidStateError if readyState === 0\n // Defer set currentTime operation after loadedmetadata\n }\n }\n };\n NativePlayer.prototype.detachMediaElement = function () {\n if (this._mediaElement) {\n this._mediaElement.src = '';\n this._mediaElement.removeAttribute('src');\n this._mediaElement.removeEventListener('loadedmetadata', this.e.onvLoadedMetadata);\n this._mediaElement = null;\n }\n if (this._statisticsReporter != null) {\n window.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n };\n NativePlayer.prototype.load = function () {\n if (!this._mediaElement) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_3__.IllegalStateException('HTMLMediaElement must be attached before load()!');\n }\n this._mediaElement.src = this._mediaDataSource.url;\n if (this._mediaElement.readyState > 0) {\n this._mediaElement.currentTime = 0;\n }\n this._mediaElement.preload = 'auto';\n this._mediaElement.load();\n this._statisticsReporter = window.setInterval(this._reportStatisticsInfo.bind(this), this._config.statisticsInfoReportInterval);\n };\n NativePlayer.prototype.unload = function () {\n if (this._mediaElement) {\n this._mediaElement.src = '';\n this._mediaElement.removeAttribute('src');\n }\n if (this._statisticsReporter != null) {\n window.clearInterval(this._statisticsReporter);\n this._statisticsReporter = null;\n }\n };\n NativePlayer.prototype.play = function () {\n return this._mediaElement.play();\n };\n NativePlayer.prototype.pause = function () {\n this._mediaElement.pause();\n };\n Object.defineProperty(NativePlayer.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NativePlayer.prototype, \"buffered\", {\n get: function () {\n return this._mediaElement.buffered;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NativePlayer.prototype, \"duration\", {\n get: function () {\n return this._mediaElement.duration;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NativePlayer.prototype, \"volume\", {\n get: function () {\n return this._mediaElement.volume;\n },\n set: function (value) {\n this._mediaElement.volume = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NativePlayer.prototype, \"muted\", {\n get: function () {\n return this._mediaElement.muted;\n },\n set: function (muted) {\n this._mediaElement.muted = muted;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NativePlayer.prototype, \"currentTime\", {\n get: function () {\n if (this._mediaElement) {\n return this._mediaElement.currentTime;\n }\n return 0;\n },\n set: function (seconds) {\n if (this._mediaElement) {\n this._mediaElement.currentTime = seconds;\n }\n else {\n this._pendingSeekTime = seconds;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NativePlayer.prototype, \"mediaInfo\", {\n get: function () {\n var mediaPrefix = (this._mediaElement instanceof HTMLAudioElement) ? 'audio/' : 'video/';\n var info = {\n mimeType: mediaPrefix + this._mediaDataSource.type\n };\n if (this._mediaElement) {\n info.duration = Math.floor(this._mediaElement.duration * 1000);\n if (this._mediaElement instanceof HTMLVideoElement) {\n info.width = this._mediaElement.videoWidth;\n info.height = this._mediaElement.videoHeight;\n }\n }\n return info;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NativePlayer.prototype, \"statisticsInfo\", {\n get: function () {\n var info = {\n playerType: this._type,\n url: this._mediaDataSource.url\n };\n if (!(this._mediaElement instanceof HTMLVideoElement)) {\n return info;\n }\n var hasQualityInfo = true;\n var decoded = 0;\n var dropped = 0;\n if (this._mediaElement.getVideoPlaybackQuality) {\n var quality = this._mediaElement.getVideoPlaybackQuality();\n decoded = quality.totalVideoFrames;\n dropped = quality.droppedVideoFrames;\n }\n else if (this._mediaElement.webkitDecodedFrameCount != undefined) {\n decoded = this._mediaElement.webkitDecodedFrameCount;\n dropped = this._mediaElement.webkitDroppedFrameCount;\n }\n else {\n hasQualityInfo = false;\n }\n if (hasQualityInfo) {\n info.decodedFrames = decoded;\n info.droppedFrames = dropped;\n }\n return info;\n },\n enumerable: false,\n configurable: true\n });\n NativePlayer.prototype._onvLoadedMetadata = function (e) {\n if (this._pendingSeekTime != null) {\n this._mediaElement.currentTime = this._pendingSeekTime;\n this._pendingSeekTime = null;\n }\n this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_1__.default.MEDIA_INFO, this.mediaInfo);\n };\n NativePlayer.prototype._reportStatisticsInfo = function () {\n this._emitter.emit(_player_events_js__WEBPACK_IMPORTED_MODULE_1__.default.STATISTICS_INFO, this.statisticsInfo);\n };\n return NativePlayer;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (NativePlayer);\n\n\n/***/ }),\n\n/***/ \"./src/player/player-errors.js\":\n/*!*************************************!*\\\n !*** ./src/player/player-errors.js ***!\n \\*************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ErrorTypes\": function() { return /* binding */ ErrorTypes; },\n/* harmony export */ \"ErrorDetails\": function() { return /* binding */ ErrorDetails; }\n/* harmony export */ });\n/* harmony import */ var _io_loader_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../io/loader.js */ \"./src/io/loader.js\");\n/* harmony import */ var _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../demux/demux-errors.js */ \"./src/demux/demux-errors.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar ErrorTypes = {\n NETWORK_ERROR: 'NetworkError',\n MEDIA_ERROR: 'MediaError',\n OTHER_ERROR: 'OtherError'\n};\nvar ErrorDetails = {\n NETWORK_EXCEPTION: _io_loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderErrors.EXCEPTION,\n NETWORK_STATUS_CODE_INVALID: _io_loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderErrors.HTTP_STATUS_CODE_INVALID,\n NETWORK_TIMEOUT: _io_loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderErrors.CONNECTING_TIMEOUT,\n NETWORK_UNRECOVERABLE_EARLY_EOF: _io_loader_js__WEBPACK_IMPORTED_MODULE_0__.LoaderErrors.UNRECOVERABLE_EARLY_EOF,\n MEDIA_MSE_ERROR: 'MediaMSEError',\n MEDIA_FORMAT_ERROR: _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__.default.FORMAT_ERROR,\n MEDIA_FORMAT_UNSUPPORTED: _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__.default.FORMAT_UNSUPPORTED,\n MEDIA_CODEC_UNSUPPORTED: _demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__.default.CODEC_UNSUPPORTED\n};\n\n\n/***/ }),\n\n/***/ \"./src/player/player-events.js\":\n/*!*************************************!*\\\n !*** ./src/player/player-events.js ***!\n \\*************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar PlayerEvents = {\n ERROR: 'error',\n LOADING_COMPLETE: 'loading_complete',\n RECOVERED_EARLY_EOF: 'recovered_early_eof',\n MEDIA_INFO: 'media_info',\n METADATA_ARRIVED: 'metadata_arrived',\n SCRIPTDATA_ARRIVED: 'scriptdata_arrived',\n STATISTICS_INFO: 'statistics_info'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (PlayerEvents);\n\n\n/***/ }),\n\n/***/ \"./src/remux/aac-silent.js\":\n/*!*********************************!*\\\n !*** ./src/remux/aac-silent.js ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is modified from dailymotion's hls.js library (hls.js/src/helper/aac.js)\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AAC = /** @class */ (function () {\n function AAC() {\n }\n AAC.getSilentFrame = function (codec, channelCount) {\n if (codec === 'mp4a.40.2') {\n // handle LC-AAC\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n }\n else if (channelCount === 2) {\n return new Uint8Array([0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80]);\n }\n else if (channelCount === 3) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x8e]);\n }\n else if (channelCount === 4) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38]);\n }\n else if (channelCount === 5) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38]);\n }\n else if (channelCount === 6) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2, 0x00, 0x20, 0x08, 0xe0]);\n }\n }\n else {\n // handle HE-AAC (mp4a.40.5 / mp4a.40.29)\n if (channelCount === 1) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n else if (channelCount === 2) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n else if (channelCount === 3) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n }\n return null;\n };\n return AAC;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (AAC);\n\n\n/***/ }),\n\n/***/ \"./src/remux/mp4-generator.js\":\n/*!************************************!*\\\n !*** ./src/remux/mp4-generator.js ***!\n \\************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is derived from dailymotion's hls.js library (hls.js/src/remux/mp4-generator.js)\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// MP4 boxes generator for ISO BMFF (ISO Base Media File Format, defined in ISO/IEC 14496-12)\nvar MP4 = /** @class */ (function () {\n function MP4() {\n }\n MP4.init = function () {\n MP4.types = {\n avc1: [], avcC: [], btrt: [], dinf: [],\n dref: [], esds: [], ftyp: [], hdlr: [],\n mdat: [], mdhd: [], mdia: [], mfhd: [],\n minf: [], moof: [], moov: [], mp4a: [],\n mvex: [], mvhd: [], sdtp: [], stbl: [],\n stco: [], stsc: [], stsd: [], stsz: [],\n stts: [], tfdt: [], tfhd: [], traf: [],\n trak: [], trun: [], trex: [], tkhd: [],\n vmhd: [], smhd: [], '.mp3': []\n };\n for (var name_1 in MP4.types) {\n if (MP4.types.hasOwnProperty(name_1)) {\n MP4.types[name_1] = [\n name_1.charCodeAt(0),\n name_1.charCodeAt(1),\n name_1.charCodeAt(2),\n name_1.charCodeAt(3)\n ];\n }\n }\n var constants = MP4.constants = {};\n constants.FTYP = new Uint8Array([\n 0x69, 0x73, 0x6F, 0x6D,\n 0x0, 0x0, 0x0, 0x1,\n 0x69, 0x73, 0x6F, 0x6D,\n 0x61, 0x76, 0x63, 0x31 // avc1\n ]);\n constants.STSD_PREFIX = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x01 // entry_count\n ]);\n constants.STTS = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n constants.STSC = constants.STCO = constants.STTS;\n constants.STSZ = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n constants.HDLR_VIDEO = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x76, 0x69, 0x64, 0x65,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x56, 0x69, 0x64, 0x65,\n 0x6F, 0x48, 0x61, 0x6E,\n 0x64, 0x6C, 0x65, 0x72, 0x00 // name: VideoHandler\n ]);\n constants.HDLR_AUDIO = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x73, 0x6F, 0x75, 0x6E,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x53, 0x6F, 0x75, 0x6E,\n 0x64, 0x48, 0x61, 0x6E,\n 0x64, 0x6C, 0x65, 0x72, 0x00 // name: SoundHandler\n ]);\n constants.DREF = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x01,\n 0x00, 0x00, 0x00, 0x0C,\n 0x75, 0x72, 0x6C, 0x20,\n 0x00, 0x00, 0x00, 0x01 // version(0) + flags\n ]);\n // Sound media header\n constants.SMHD = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00 // balance(2) + reserved(2)\n ]);\n // video media header\n constants.VMHD = new Uint8Array([\n 0x00, 0x00, 0x00, 0x01,\n 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00\n ]);\n };\n // Generate a box\n MP4.box = function (type) {\n var size = 8;\n var result = null;\n var datas = Array.prototype.slice.call(arguments, 1);\n var arrayCount = datas.length;\n for (var i = 0; i < arrayCount; i++) {\n size += datas[i].byteLength;\n }\n result = new Uint8Array(size);\n result[0] = (size >>> 24) & 0xFF; // size\n result[1] = (size >>> 16) & 0xFF;\n result[2] = (size >>> 8) & 0xFF;\n result[3] = (size) & 0xFF;\n result.set(type, 4); // type\n var offset = 8;\n for (var i = 0; i < arrayCount; i++) { // data body\n result.set(datas[i], offset);\n offset += datas[i].byteLength;\n }\n return result;\n };\n // emit ftyp & moov\n MP4.generateInitSegment = function (meta) {\n var ftyp = MP4.box(MP4.types.ftyp, MP4.constants.FTYP);\n var moov = MP4.moov(meta);\n var result = new Uint8Array(ftyp.byteLength + moov.byteLength);\n result.set(ftyp, 0);\n result.set(moov, ftyp.byteLength);\n return result;\n };\n // Movie metadata box\n MP4.moov = function (meta) {\n var mvhd = MP4.mvhd(meta.timescale, meta.duration);\n var trak = MP4.trak(meta);\n var mvex = MP4.mvex(meta);\n return MP4.box(MP4.types.moov, mvhd, trak, mvex);\n };\n // Movie header box\n MP4.mvhd = function (timescale, duration) {\n return MP4.box(MP4.types.mvhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n (timescale >>> 24) & 0xFF,\n (timescale >>> 16) & 0xFF,\n (timescale >>> 8) & 0xFF,\n (timescale) & 0xFF,\n (duration >>> 24) & 0xFF,\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x00, 0x01, 0x00, 0x00,\n 0x01, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0xFF, 0xFF, 0xFF, 0xFF // next_track_ID\n ]));\n };\n // Track box\n MP4.trak = function (meta) {\n return MP4.box(MP4.types.trak, MP4.tkhd(meta), MP4.mdia(meta));\n };\n // Track header box\n MP4.tkhd = function (meta) {\n var trackId = meta.id, duration = meta.duration;\n var width = meta.presentWidth, height = meta.presentHeight;\n return MP4.box(MP4.types.tkhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x07,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n (trackId >>> 24) & 0xFF,\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF,\n 0x00, 0x00, 0x00, 0x00,\n (duration >>> 24) & 0xFF,\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00,\n (width >>> 8) & 0xFF,\n (width) & 0xFF,\n 0x00, 0x00,\n (height >>> 8) & 0xFF,\n (height) & 0xFF,\n 0x00, 0x00\n ]));\n };\n // Media Box\n MP4.mdia = function (meta) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(meta), MP4.hdlr(meta), MP4.minf(meta));\n };\n // Media header box\n MP4.mdhd = function (meta) {\n var timescale = meta.timescale;\n var duration = meta.duration;\n return MP4.box(MP4.types.mdhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n (timescale >>> 24) & 0xFF,\n (timescale >>> 16) & 0xFF,\n (timescale >>> 8) & 0xFF,\n (timescale) & 0xFF,\n (duration >>> 24) & 0xFF,\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n 0x55, 0xC4,\n 0x00, 0x00 // pre_defined = 0\n ]));\n };\n // Media handler reference box\n MP4.hdlr = function (meta) {\n var data = null;\n if (meta.type === 'audio') {\n data = MP4.constants.HDLR_AUDIO;\n }\n else {\n data = MP4.constants.HDLR_VIDEO;\n }\n return MP4.box(MP4.types.hdlr, data);\n };\n // Media infomation box\n MP4.minf = function (meta) {\n var xmhd = null;\n if (meta.type === 'audio') {\n xmhd = MP4.box(MP4.types.smhd, MP4.constants.SMHD);\n }\n else {\n xmhd = MP4.box(MP4.types.vmhd, MP4.constants.VMHD);\n }\n return MP4.box(MP4.types.minf, xmhd, MP4.dinf(), MP4.stbl(meta));\n };\n // Data infomation box\n MP4.dinf = function () {\n var result = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, MP4.constants.DREF));\n return result;\n };\n // Sample table box\n MP4.stbl = function (meta) {\n var result = MP4.box(MP4.types.stbl, // type: stbl\n MP4.stsd(meta), // Sample Description Table\n MP4.box(MP4.types.stts, MP4.constants.STTS), // Time-To-Sample\n MP4.box(MP4.types.stsc, MP4.constants.STSC), // Sample-To-Chunk\n MP4.box(MP4.types.stsz, MP4.constants.STSZ), // Sample size\n MP4.box(MP4.types.stco, MP4.constants.STCO) // Chunk offset\n );\n return result;\n };\n // Sample description box\n MP4.stsd = function (meta) {\n if (meta.type === 'audio') {\n if (meta.codec === 'mp3') {\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.mp3(meta));\n }\n // else: aac -> mp4a\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.mp4a(meta));\n }\n else {\n return MP4.box(MP4.types.stsd, MP4.constants.STSD_PREFIX, MP4.avc1(meta));\n }\n };\n MP4.mp3 = function (meta) {\n var channelCount = meta.channelCount;\n var sampleRate = meta.audioSampleRate;\n var data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x01,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, channelCount,\n 0x00, 0x10,\n 0x00, 0x00, 0x00, 0x00,\n (sampleRate >>> 8) & 0xFF,\n (sampleRate) & 0xFF,\n 0x00, 0x00\n ]);\n return MP4.box(MP4.types['.mp3'], data);\n };\n MP4.mp4a = function (meta) {\n var channelCount = meta.channelCount;\n var sampleRate = meta.audioSampleRate;\n var data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x01,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, channelCount,\n 0x00, 0x10,\n 0x00, 0x00, 0x00, 0x00,\n (sampleRate >>> 8) & 0xFF,\n (sampleRate) & 0xFF,\n 0x00, 0x00\n ]);\n return MP4.box(MP4.types.mp4a, data, MP4.esds(meta));\n };\n MP4.esds = function (meta) {\n var config = meta.config || [];\n var configSize = config.length;\n var data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x03,\n 0x17 + configSize,\n 0x00, 0x01,\n 0x00,\n 0x04,\n 0x0F + configSize,\n 0x40,\n 0x15,\n 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x05 // descriptor_type\n ].concat([\n configSize\n ]).concat(config).concat([\n 0x06, 0x01, 0x02 // GASpecificConfig\n ]));\n return MP4.box(MP4.types.esds, data);\n };\n MP4.avc1 = function (meta) {\n var avcc = meta.avcc;\n var width = meta.codecWidth, height = meta.codecHeight;\n var data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x01,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n (width >>> 8) & 0xFF,\n (width) & 0xFF,\n (height >>> 8) & 0xFF,\n (height) & 0xFF,\n 0x00, 0x48, 0x00, 0x00,\n 0x00, 0x48, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01,\n 0x0A,\n 0x78, 0x71, 0x71, 0x2F,\n 0x66, 0x6C, 0x76, 0x2E,\n 0x6A, 0x73, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00,\n 0x00, 0x18,\n 0xFF, 0xFF // pre_defined = -1\n ]);\n return MP4.box(MP4.types.avc1, data, MP4.box(MP4.types.avcC, avcc));\n };\n // Movie Extends box\n MP4.mvex = function (meta) {\n return MP4.box(MP4.types.mvex, MP4.trex(meta));\n };\n // Track Extends box\n MP4.trex = function (meta) {\n var trackId = meta.id;\n var data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n (trackId >>> 24) & 0xFF,\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF,\n 0x00, 0x00, 0x00, 0x01,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]);\n return MP4.box(MP4.types.trex, data);\n };\n // Movie fragment box\n MP4.moof = function (track, baseMediaDecodeTime) {\n return MP4.box(MP4.types.moof, MP4.mfhd(track.sequenceNumber), MP4.traf(track, baseMediaDecodeTime));\n };\n MP4.mfhd = function (sequenceNumber) {\n var data = new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n (sequenceNumber >>> 24) & 0xFF,\n (sequenceNumber >>> 16) & 0xFF,\n (sequenceNumber >>> 8) & 0xFF,\n (sequenceNumber) & 0xFF\n ]);\n return MP4.box(MP4.types.mfhd, data);\n };\n // Track fragment box\n MP4.traf = function (track, baseMediaDecodeTime) {\n var trackId = track.id;\n // Track fragment header box\n var tfhd = MP4.box(MP4.types.tfhd, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n (trackId >>> 24) & 0xFF,\n (trackId >>> 16) & 0xFF,\n (trackId >>> 8) & 0xFF,\n (trackId) & 0xFF\n ]));\n // Track Fragment Decode Time\n var tfdt = MP4.box(MP4.types.tfdt, new Uint8Array([\n 0x00, 0x00, 0x00, 0x00,\n (baseMediaDecodeTime >>> 24) & 0xFF,\n (baseMediaDecodeTime >>> 16) & 0xFF,\n (baseMediaDecodeTime >>> 8) & 0xFF,\n (baseMediaDecodeTime) & 0xFF\n ]));\n var sdtp = MP4.sdtp(track);\n var trun = MP4.trun(track, sdtp.byteLength + 16 + 16 + 8 + 16 + 8 + 8);\n return MP4.box(MP4.types.traf, tfhd, tfdt, trun, sdtp);\n };\n // Sample Dependency Type box\n MP4.sdtp = function (track) {\n var samples = track.samples || [];\n var sampleCount = samples.length;\n var data = new Uint8Array(4 + sampleCount);\n // 0~4 bytes: version(0) & flags\n for (var i = 0; i < sampleCount; i++) {\n var flags = samples[i].flags;\n data[i + 4] = (flags.isLeading << 6) // is_leading: 2 (bit)\n | (flags.dependsOn << 4) // sample_depends_on\n | (flags.isDependedOn << 2) // sample_is_depended_on\n | (flags.hasRedundancy); // sample_has_redundancy\n }\n return MP4.box(MP4.types.sdtp, data);\n };\n // Track fragment run box\n MP4.trun = function (track, offset) {\n var samples = track.samples || [];\n var sampleCount = samples.length;\n var dataSize = 12 + 16 * sampleCount;\n var data = new Uint8Array(dataSize);\n offset += 8 + dataSize;\n data.set([\n 0x00, 0x00, 0x0F, 0x01,\n (sampleCount >>> 24) & 0xFF,\n (sampleCount >>> 16) & 0xFF,\n (sampleCount >>> 8) & 0xFF,\n (sampleCount) & 0xFF,\n (offset >>> 24) & 0xFF,\n (offset >>> 16) & 0xFF,\n (offset >>> 8) & 0xFF,\n (offset) & 0xFF\n ], 0);\n for (var i = 0; i < sampleCount; i++) {\n var duration = samples[i].duration;\n var size = samples[i].size;\n var flags = samples[i].flags;\n var cts = samples[i].cts;\n data.set([\n (duration >>> 24) & 0xFF,\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n (duration) & 0xFF,\n (size >>> 24) & 0xFF,\n (size >>> 16) & 0xFF,\n (size >>> 8) & 0xFF,\n (size) & 0xFF,\n (flags.isLeading << 2) | flags.dependsOn,\n (flags.isDependedOn << 6) | (flags.hasRedundancy << 4) | flags.isNonSync,\n 0x00, 0x00,\n (cts >>> 24) & 0xFF,\n (cts >>> 16) & 0xFF,\n (cts >>> 8) & 0xFF,\n (cts) & 0xFF\n ], 12 + 16 * i);\n }\n return MP4.box(MP4.types.trun, data);\n };\n MP4.mdat = function (data) {\n return MP4.box(MP4.types.mdat, data);\n };\n return MP4;\n}());\nMP4.init();\n/* harmony default export */ __webpack_exports__[\"default\"] = (MP4);\n\n\n/***/ }),\n\n/***/ \"./src/remux/mp4-remuxer.js\":\n/*!**********************************!*\\\n !*** ./src/remux/mp4-remuxer.js ***!\n \\**********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger.js */ \"./src/utils/logger.js\");\n/* harmony import */ var _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mp4-generator.js */ \"./src/remux/mp4-generator.js\");\n/* harmony import */ var _aac_silent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./aac-silent.js */ \"./src/remux/aac-silent.js\");\n/* harmony import */ var _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/browser.js */ \"./src/utils/browser.js\");\n/* harmony import */ var _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/media-segment-info.js */ \"./src/core/media-segment-info.js\");\n/* harmony import */ var _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/exception.js */ \"./src/utils/exception.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n\n\n\n\n// Fragmented mp4 remuxer\nvar MP4Remuxer = /** @class */ (function () {\n function MP4Remuxer(config) {\n this.TAG = 'MP4Remuxer';\n this._config = config;\n this._isLive = (config.isLive === true) ? true : false;\n this._dtsBase = -1;\n this._dtsBaseInited = false;\n this._audioDtsBase = Infinity;\n this._videoDtsBase = Infinity;\n this._audioNextDts = undefined;\n this._videoNextDts = undefined;\n this._audioStashedLastSample = null;\n this._videoStashedLastSample = null;\n this._audioMeta = null;\n this._videoMeta = null;\n this._audioSegmentInfoList = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.MediaSegmentInfoList('audio');\n this._videoSegmentInfoList = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.MediaSegmentInfoList('video');\n this._onInitSegment = null;\n this._onMediaSegment = null;\n // Workaround for chrome < 50: Always force first sample as a Random Access Point in media segment\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=229412\n this._forceFirstIDR = (_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__.default.chrome &&\n (_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__.default.version.major < 50 ||\n (_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__.default.version.major === 50 && _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__.default.version.build < 2661))) ? true : false;\n // Workaround for IE11/Edge: Fill silent aac frame after keyframe-seeking\n // Make audio beginDts equals with video beginDts, in order to fix seek freeze\n this._fillSilentAfterSeek = (_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__.default.msedge || _utils_browser_js__WEBPACK_IMPORTED_MODULE_3__.default.msie);\n // While only FireFox supports 'audio/mp4, codecs=\"mp3\"', use 'audio/mpeg' for chrome, safari, ...\n this._mp3UseMpegAudio = !_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__.default.firefox;\n this._fillAudioTimestampGap = this._config.fixAudioTimestampGap;\n }\n MP4Remuxer.prototype.destroy = function () {\n this._dtsBase = -1;\n this._dtsBaseInited = false;\n this._audioMeta = null;\n this._videoMeta = null;\n this._audioSegmentInfoList.clear();\n this._audioSegmentInfoList = null;\n this._videoSegmentInfoList.clear();\n this._videoSegmentInfoList = null;\n this._onInitSegment = null;\n this._onMediaSegment = null;\n };\n MP4Remuxer.prototype.bindDataSource = function (producer) {\n producer.onDataAvailable = this.remux.bind(this);\n producer.onTrackMetadata = this._onTrackMetadataReceived.bind(this);\n return this;\n };\n Object.defineProperty(MP4Remuxer.prototype, \"onInitSegment\", {\n /* prototype: function onInitSegment(type: string, initSegment: ArrayBuffer): void\n InitSegment: {\n type: string,\n data: ArrayBuffer,\n codec: string,\n container: string\n }\n */\n get: function () {\n return this._onInitSegment;\n },\n set: function (callback) {\n this._onInitSegment = callback;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MP4Remuxer.prototype, \"onMediaSegment\", {\n /* prototype: function onMediaSegment(type: string, mediaSegment: MediaSegment): void\n MediaSegment: {\n type: string,\n data: ArrayBuffer,\n sampleCount: int32\n info: MediaSegmentInfo\n }\n */\n get: function () {\n return this._onMediaSegment;\n },\n set: function (callback) {\n this._onMediaSegment = callback;\n },\n enumerable: false,\n configurable: true\n });\n MP4Remuxer.prototype.insertDiscontinuity = function () {\n this._audioNextDts = this._videoNextDts = undefined;\n };\n MP4Remuxer.prototype.seek = function (originalDts) {\n this._audioStashedLastSample = null;\n this._videoStashedLastSample = null;\n this._videoSegmentInfoList.clear();\n this._audioSegmentInfoList.clear();\n };\n MP4Remuxer.prototype.remux = function (audioTrack, videoTrack) {\n if (!this._onMediaSegment) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__.IllegalStateException('MP4Remuxer: onMediaSegment callback must be specificed!');\n }\n if (!this._dtsBaseInited) {\n this._calculateDtsBase(audioTrack, videoTrack);\n }\n this._remuxVideo(videoTrack);\n this._remuxAudio(audioTrack);\n };\n MP4Remuxer.prototype._onTrackMetadataReceived = function (type, metadata) {\n var metabox = null;\n var container = 'mp4';\n var codec = metadata.codec;\n if (type === 'audio') {\n this._audioMeta = metadata;\n if (metadata.codec === 'mp3' && this._mp3UseMpegAudio) {\n // 'audio/mpeg' for MP3 audio track\n container = 'mpeg';\n codec = '';\n metabox = new Uint8Array();\n }\n else {\n // 'audio/mp4, codecs=\"codec\"'\n metabox = _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__.default.generateInitSegment(metadata);\n }\n }\n else if (type === 'video') {\n this._videoMeta = metadata;\n metabox = _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__.default.generateInitSegment(metadata);\n }\n else {\n return;\n }\n // dispatch metabox (Initialization Segment)\n if (!this._onInitSegment) {\n throw new _utils_exception_js__WEBPACK_IMPORTED_MODULE_5__.IllegalStateException('MP4Remuxer: onInitSegment callback must be specified!');\n }\n this._onInitSegment(type, {\n type: type,\n data: metabox.buffer,\n codec: codec,\n container: type + \"/\" + container,\n mediaDuration: metadata.duration // in timescale 1000 (milliseconds)\n });\n };\n MP4Remuxer.prototype._calculateDtsBase = function (audioTrack, videoTrack) {\n if (this._dtsBaseInited) {\n return;\n }\n if (audioTrack.samples && audioTrack.samples.length) {\n this._audioDtsBase = audioTrack.samples[0].dts;\n }\n if (videoTrack.samples && videoTrack.samples.length) {\n this._videoDtsBase = videoTrack.samples[0].dts;\n }\n this._dtsBase = Math.min(this._audioDtsBase, this._videoDtsBase);\n this._dtsBaseInited = true;\n };\n MP4Remuxer.prototype.flushStashedSamples = function () {\n var videoSample = this._videoStashedLastSample;\n var audioSample = this._audioStashedLastSample;\n var videoTrack = {\n type: 'video',\n id: 1,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n if (videoSample != null) {\n videoTrack.samples.push(videoSample);\n videoTrack.length = videoSample.length;\n }\n var audioTrack = {\n type: 'audio',\n id: 2,\n sequenceNumber: 0,\n samples: [],\n length: 0\n };\n if (audioSample != null) {\n audioTrack.samples.push(audioSample);\n audioTrack.length = audioSample.length;\n }\n this._videoStashedLastSample = null;\n this._audioStashedLastSample = null;\n this._remuxVideo(videoTrack, true);\n this._remuxAudio(audioTrack, true);\n };\n MP4Remuxer.prototype._remuxAudio = function (audioTrack, force) {\n if (this._audioMeta == null) {\n return;\n }\n var track = audioTrack;\n var samples = track.samples;\n var dtsCorrection = undefined;\n var firstDts = -1, lastDts = -1, lastPts = -1;\n var refSampleDuration = this._audioMeta.refSampleDuration;\n var mpegRawTrack = this._audioMeta.codec === 'mp3' && this._mp3UseMpegAudio;\n var firstSegmentAfterSeek = this._dtsBaseInited && this._audioNextDts === undefined;\n var insertPrefixSilentFrame = false;\n if (!samples || samples.length === 0) {\n return;\n }\n if (samples.length === 1 && !force) {\n // If [sample count in current batch] === 1 && (force != true)\n // Ignore and keep in demuxer's queue\n return;\n } // else if (force === true) do remux\n var offset = 0;\n var mdatbox = null;\n var mdatBytes = 0;\n // calculate initial mdat size\n if (mpegRawTrack) {\n // for raw mpeg buffer\n offset = 0;\n mdatBytes = track.length;\n }\n else {\n // for fmp4 mdat box\n offset = 8; // size + type\n mdatBytes = 8 + track.length;\n }\n var lastSample = null;\n // Pop the lastSample and waiting for stash\n if (samples.length > 1) {\n lastSample = samples.pop();\n mdatBytes -= lastSample.length;\n }\n // Insert [stashed lastSample in the previous batch] to the front\n if (this._audioStashedLastSample != null) {\n var sample = this._audioStashedLastSample;\n this._audioStashedLastSample = null;\n samples.unshift(sample);\n mdatBytes += sample.length;\n }\n // Stash the lastSample of current batch, waiting for next batch\n if (lastSample != null) {\n this._audioStashedLastSample = lastSample;\n }\n var firstSampleOriginalDts = samples[0].dts - this._dtsBase;\n // calculate dtsCorrection\n if (this._audioNextDts) {\n dtsCorrection = firstSampleOriginalDts - this._audioNextDts;\n }\n else { // this._audioNextDts == undefined\n if (this._audioSegmentInfoList.isEmpty()) {\n dtsCorrection = 0;\n if (this._fillSilentAfterSeek && !this._videoSegmentInfoList.isEmpty()) {\n if (this._audioMeta.originalCodec !== 'mp3') {\n insertPrefixSilentFrame = true;\n }\n }\n }\n else {\n var lastSample_1 = this._audioSegmentInfoList.getLastSampleBefore(firstSampleOriginalDts);\n if (lastSample_1 != null) {\n var distance = (firstSampleOriginalDts - (lastSample_1.originalDts + lastSample_1.duration));\n if (distance <= 3) {\n distance = 0;\n }\n var expectedDts = lastSample_1.dts + lastSample_1.duration + distance;\n dtsCorrection = firstSampleOriginalDts - expectedDts;\n }\n else { // lastSample == null, cannot found\n dtsCorrection = 0;\n }\n }\n }\n if (insertPrefixSilentFrame) {\n // align audio segment beginDts to match with current video segment's beginDts\n var firstSampleDts = firstSampleOriginalDts - dtsCorrection;\n var videoSegment = this._videoSegmentInfoList.getLastSegmentBefore(firstSampleOriginalDts);\n if (videoSegment != null && videoSegment.beginDts < firstSampleDts) {\n var silentUnit = _aac_silent_js__WEBPACK_IMPORTED_MODULE_2__.default.getSilentFrame(this._audioMeta.originalCodec, this._audioMeta.channelCount);\n if (silentUnit) {\n var dts = videoSegment.beginDts;\n var silentFrameDuration = firstSampleDts - videoSegment.beginDts;\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.v(this.TAG, \"InsertPrefixSilentAudio: dts: \" + dts + \", duration: \" + silentFrameDuration);\n samples.unshift({ unit: silentUnit, dts: dts, pts: dts });\n mdatBytes += silentUnit.byteLength;\n } // silentUnit == null: Cannot generate, skip\n }\n else {\n insertPrefixSilentFrame = false;\n }\n }\n var mp4Samples = [];\n // Correct dts for each sample, and calculate sample duration. Then output to mp4Samples\n for (var i = 0; i < samples.length; i++) {\n var sample = samples[i];\n var unit = sample.unit;\n var originalDts = sample.dts - this._dtsBase;\n var dts = originalDts;\n var needFillSilentFrames = false;\n var silentFrames = null;\n var sampleDuration = 0;\n if (originalDts < -0.001) {\n continue; //pass the first sample with the invalid dts\n }\n if (this._audioMeta.codec !== 'mp3') {\n // for AAC codec, we need to keep dts increase based on refSampleDuration\n var curRefDts = originalDts;\n var maxAudioFramesDrift = 3;\n if (this._audioNextDts) {\n curRefDts = this._audioNextDts;\n }\n dtsCorrection = originalDts - curRefDts;\n if (dtsCorrection <= -maxAudioFramesDrift * refSampleDuration) {\n // If we're overlapping by more than maxAudioFramesDrift number of frame, drop this sample\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, \"Dropping 1 audio frame (originalDts: \" + originalDts + \" ms ,curRefDts: \" + curRefDts + \" ms) due to dtsCorrection: \" + dtsCorrection + \" ms overlap.\");\n continue;\n }\n else if (dtsCorrection >= maxAudioFramesDrift * refSampleDuration && this._fillAudioTimestampGap && !_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__.default.safari) {\n // Silent frame generation, if large timestamp gap detected && config.fixAudioTimestampGap\n needFillSilentFrames = true;\n // We need to insert silent frames to fill timestamp gap\n var frameCount = Math.floor(dtsCorrection / refSampleDuration);\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Large audio timestamp gap detected, may cause AV sync to drift. ' +\n 'Silent frames will be generated to avoid unsync.\\n' +\n (\"originalDts: \" + originalDts + \" ms, curRefDts: \" + curRefDts + \" ms, \") +\n (\"dtsCorrection: \" + Math.round(dtsCorrection) + \" ms, generate: \" + frameCount + \" frames\"));\n dts = Math.floor(curRefDts);\n sampleDuration = Math.floor(curRefDts + refSampleDuration) - dts;\n var silentUnit = _aac_silent_js__WEBPACK_IMPORTED_MODULE_2__.default.getSilentFrame(this._audioMeta.originalCodec, this._audioMeta.channelCount);\n if (silentUnit == null) {\n _utils_logger_js__WEBPACK_IMPORTED_MODULE_0__.default.w(this.TAG, 'Unable to generate silent frame for ' +\n (this._audioMeta.originalCodec + \" with \" + this._audioMeta.channelCount + \" channels, repeat last frame\"));\n // Repeat last frame\n silentUnit = unit;\n }\n silentFrames = [];\n for (var j = 0; j < frameCount; j++) {\n curRefDts = curRefDts + refSampleDuration;\n var intDts = Math.floor(curRefDts); // change to integer\n var intDuration = Math.floor(curRefDts + refSampleDuration) - intDts;\n var frame = {\n dts: intDts,\n pts: intDts,\n cts: 0,\n unit: silentUnit,\n size: silentUnit.byteLength,\n duration: intDuration,\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: 1,\n isDependedOn: 0,\n hasRedundancy: 0\n }\n };\n silentFrames.push(frame);\n mdatBytes += frame.size;\n ;\n }\n this._audioNextDts = curRefDts + refSampleDuration;\n }\n else {\n dts = Math.floor(curRefDts);\n sampleDuration = Math.floor(curRefDts + refSampleDuration) - dts;\n this._audioNextDts = curRefDts + refSampleDuration;\n }\n }\n else {\n // keep the original dts calculate algorithm for mp3\n dts = originalDts - dtsCorrection;\n if (i !== samples.length - 1) {\n var nextDts = samples[i + 1].dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n }\n else { // the last sample\n if (lastSample != null) { // use stashed sample's dts to calculate sample duration\n var nextDts = lastSample.dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n }\n else if (mp4Samples.length >= 1) { // use second last sample duration\n sampleDuration = mp4Samples[mp4Samples.length - 1].duration;\n }\n else { // the only one sample, use reference sample duration\n sampleDuration = Math.floor(refSampleDuration);\n }\n }\n this._audioNextDts = dts + sampleDuration;\n }\n if (firstDts === -1) {\n firstDts = dts;\n }\n mp4Samples.push({\n dts: dts,\n pts: dts,\n cts: 0,\n unit: sample.unit,\n size: sample.unit.byteLength,\n duration: sampleDuration,\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: 1,\n isDependedOn: 0,\n hasRedundancy: 0\n }\n });\n if (needFillSilentFrames) {\n // Silent frames should be inserted after wrong-duration frame\n mp4Samples.push.apply(mp4Samples, silentFrames);\n }\n }\n if (mp4Samples.length === 0) {\n //no samples need to remux\n track.samples = [];\n track.length = 0;\n return;\n }\n // allocate mdatbox\n if (mpegRawTrack) {\n // allocate for raw mpeg buffer\n mdatbox = new Uint8Array(mdatBytes);\n }\n else {\n // allocate for fmp4 mdat box\n mdatbox = new Uint8Array(mdatBytes);\n // size field\n mdatbox[0] = (mdatBytes >>> 24) & 0xFF;\n mdatbox[1] = (mdatBytes >>> 16) & 0xFF;\n mdatbox[2] = (mdatBytes >>> 8) & 0xFF;\n mdatbox[3] = (mdatBytes) & 0xFF;\n // type field (fourCC)\n mdatbox.set(_mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__.default.types.mdat, 4);\n }\n // Write samples into mdatbox\n for (var i = 0; i < mp4Samples.length; i++) {\n var unit = mp4Samples[i].unit;\n mdatbox.set(unit, offset);\n offset += unit.byteLength;\n }\n var latest = mp4Samples[mp4Samples.length - 1];\n lastDts = latest.dts + latest.duration;\n //this._audioNextDts = lastDts;\n // fill media segment info & add to info list\n var info = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.MediaSegmentInfo();\n info.beginDts = firstDts;\n info.endDts = lastDts;\n info.beginPts = firstDts;\n info.endPts = lastDts;\n info.originalBeginDts = mp4Samples[0].originalDts;\n info.originalEndDts = latest.originalDts + latest.duration;\n info.firstSample = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.SampleInfo(mp4Samples[0].dts, mp4Samples[0].pts, mp4Samples[0].duration, mp4Samples[0].originalDts, false);\n info.lastSample = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.SampleInfo(latest.dts, latest.pts, latest.duration, latest.originalDts, false);\n if (!this._isLive) {\n this._audioSegmentInfoList.append(info);\n }\n track.samples = mp4Samples;\n track.sequenceNumber++;\n var moofbox = null;\n if (mpegRawTrack) {\n // Generate empty buffer, because useless for raw mpeg\n moofbox = new Uint8Array();\n }\n else {\n // Generate moof for fmp4 segment\n moofbox = _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__.default.moof(track, firstDts);\n }\n track.samples = [];\n track.length = 0;\n var segment = {\n type: 'audio',\n data: this._mergeBoxes(moofbox, mdatbox).buffer,\n sampleCount: mp4Samples.length,\n info: info\n };\n if (mpegRawTrack && firstSegmentAfterSeek) {\n // For MPEG audio stream in MSE, if seeking occurred, before appending new buffer\n // We need explicitly set timestampOffset to the desired point in timeline for mpeg SourceBuffer.\n segment.timestampOffset = firstDts;\n }\n this._onMediaSegment('audio', segment);\n };\n MP4Remuxer.prototype._remuxVideo = function (videoTrack, force) {\n if (this._videoMeta == null) {\n return;\n }\n var track = videoTrack;\n var samples = track.samples;\n var dtsCorrection = undefined;\n var firstDts = -1, lastDts = -1;\n var firstPts = -1, lastPts = -1;\n if (!samples || samples.length === 0) {\n return;\n }\n if (samples.length === 1 && !force) {\n // If [sample count in current batch] === 1 && (force != true)\n // Ignore and keep in demuxer's queue\n return;\n } // else if (force === true) do remux\n var offset = 8;\n var mdatbox = null;\n var mdatBytes = 8 + videoTrack.length;\n var lastSample = null;\n // Pop the lastSample and waiting for stash\n if (samples.length > 1) {\n lastSample = samples.pop();\n mdatBytes -= lastSample.length;\n }\n // Insert [stashed lastSample in the previous batch] to the front\n if (this._videoStashedLastSample != null) {\n var sample = this._videoStashedLastSample;\n this._videoStashedLastSample = null;\n samples.unshift(sample);\n mdatBytes += sample.length;\n }\n // Stash the lastSample of current batch, waiting for next batch\n if (lastSample != null) {\n this._videoStashedLastSample = lastSample;\n }\n var firstSampleOriginalDts = samples[0].dts - this._dtsBase;\n // calculate dtsCorrection\n if (this._videoNextDts) {\n dtsCorrection = firstSampleOriginalDts - this._videoNextDts;\n }\n else { // this._videoNextDts == undefined\n if (this._videoSegmentInfoList.isEmpty()) {\n dtsCorrection = 0;\n }\n else {\n var lastSample_2 = this._videoSegmentInfoList.getLastSampleBefore(firstSampleOriginalDts);\n if (lastSample_2 != null) {\n var distance = (firstSampleOriginalDts - (lastSample_2.originalDts + lastSample_2.duration));\n if (distance <= 3) {\n distance = 0;\n }\n var expectedDts = lastSample_2.dts + lastSample_2.duration + distance;\n dtsCorrection = firstSampleOriginalDts - expectedDts;\n }\n else { // lastSample == null, cannot found\n dtsCorrection = 0;\n }\n }\n }\n var info = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.MediaSegmentInfo();\n var mp4Samples = [];\n // Correct dts for each sample, and calculate sample duration. Then output to mp4Samples\n for (var i = 0; i < samples.length; i++) {\n var sample = samples[i];\n var originalDts = sample.dts - this._dtsBase;\n var isKeyframe = sample.isKeyframe;\n var dts = originalDts - dtsCorrection;\n var cts = sample.cts;\n var pts = dts + cts;\n if (firstDts === -1) {\n firstDts = dts;\n firstPts = pts;\n }\n var sampleDuration = 0;\n if (i !== samples.length - 1) {\n var nextDts = samples[i + 1].dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n }\n else { // the last sample\n if (lastSample != null) { // use stashed sample's dts to calculate sample duration\n var nextDts = lastSample.dts - this._dtsBase - dtsCorrection;\n sampleDuration = nextDts - dts;\n }\n else if (mp4Samples.length >= 1) { // use second last sample duration\n sampleDuration = mp4Samples[mp4Samples.length - 1].duration;\n }\n else { // the only one sample, use reference sample duration\n sampleDuration = Math.floor(this._videoMeta.refSampleDuration);\n }\n }\n if (isKeyframe) {\n var syncPoint = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.SampleInfo(dts, pts, sampleDuration, sample.dts, true);\n syncPoint.fileposition = sample.fileposition;\n info.appendSyncPoint(syncPoint);\n }\n mp4Samples.push({\n dts: dts,\n pts: pts,\n cts: cts,\n units: sample.units,\n size: sample.length,\n isKeyframe: isKeyframe,\n duration: sampleDuration,\n originalDts: originalDts,\n flags: {\n isLeading: 0,\n dependsOn: isKeyframe ? 2 : 1,\n isDependedOn: isKeyframe ? 1 : 0,\n hasRedundancy: 0,\n isNonSync: isKeyframe ? 0 : 1\n }\n });\n }\n // allocate mdatbox\n mdatbox = new Uint8Array(mdatBytes);\n mdatbox[0] = (mdatBytes >>> 24) & 0xFF;\n mdatbox[1] = (mdatBytes >>> 16) & 0xFF;\n mdatbox[2] = (mdatBytes >>> 8) & 0xFF;\n mdatbox[3] = (mdatBytes) & 0xFF;\n mdatbox.set(_mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__.default.types.mdat, 4);\n // Write samples into mdatbox\n for (var i = 0; i < mp4Samples.length; i++) {\n var units = mp4Samples[i].units;\n while (units.length) {\n var unit = units.shift();\n var data = unit.data;\n mdatbox.set(data, offset);\n offset += data.byteLength;\n }\n }\n var latest = mp4Samples[mp4Samples.length - 1];\n lastDts = latest.dts + latest.duration;\n lastPts = latest.pts + latest.duration;\n this._videoNextDts = lastDts;\n // fill media segment info & add to info list\n info.beginDts = firstDts;\n info.endDts = lastDts;\n info.beginPts = firstPts;\n info.endPts = lastPts;\n info.originalBeginDts = mp4Samples[0].originalDts;\n info.originalEndDts = latest.originalDts + latest.duration;\n info.firstSample = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.SampleInfo(mp4Samples[0].dts, mp4Samples[0].pts, mp4Samples[0].duration, mp4Samples[0].originalDts, mp4Samples[0].isKeyframe);\n info.lastSample = new _core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__.SampleInfo(latest.dts, latest.pts, latest.duration, latest.originalDts, latest.isKeyframe);\n if (!this._isLive) {\n this._videoSegmentInfoList.append(info);\n }\n track.samples = mp4Samples;\n track.sequenceNumber++;\n // workaround for chrome < 50: force first sample as a random access point\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=229412\n if (this._forceFirstIDR) {\n var flags = mp4Samples[0].flags;\n flags.dependsOn = 2;\n flags.isNonSync = 0;\n }\n var moofbox = _mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__.default.moof(track, firstDts);\n track.samples = [];\n track.length = 0;\n this._onMediaSegment('video', {\n type: 'video',\n data: this._mergeBoxes(moofbox, mdatbox).buffer,\n sampleCount: mp4Samples.length,\n info: info\n });\n };\n MP4Remuxer.prototype._mergeBoxes = function (moof, mdat) {\n var result = new Uint8Array(moof.byteLength + mdat.byteLength);\n result.set(moof, 0);\n result.set(mdat, moof.byteLength);\n return result;\n };\n return MP4Remuxer;\n}());\n/* harmony default export */ __webpack_exports__[\"default\"] = (MP4Remuxer);\n\n\n/***/ }),\n\n/***/ \"./src/utils/browser.js\":\n/*!******************************!*\\\n !*** ./src/utils/browser.js ***!\n \\******************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Browser = {};\nfunction detect() {\n // modified from jquery-browser-plugin\n var ua = self.navigator.userAgent.toLowerCase();\n var match = /(edge)\\/([\\w.]+)/.exec(ua) ||\n /(opr)[\\/]([\\w.]+)/.exec(ua) ||\n /(chrome)[ \\/]([\\w.]+)/.exec(ua) ||\n /(iemobile)[\\/]([\\w.]+)/.exec(ua) ||\n /(version)(applewebkit)[ \\/]([\\w.]+).*(safari)[ \\/]([\\w.]+)/.exec(ua) ||\n /(webkit)[ \\/]([\\w.]+).*(version)[ \\/]([\\w.]+).*(safari)[ \\/]([\\w.]+)/.exec(ua) ||\n /(webkit)[ \\/]([\\w.]+)/.exec(ua) ||\n /(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec(ua) ||\n /(msie) ([\\w.]+)/.exec(ua) ||\n ua.indexOf('trident') >= 0 && /(rv)(?::| )([\\w.]+)/.exec(ua) ||\n ua.indexOf('compatible') < 0 && /(firefox)[ \\/]([\\w.]+)/.exec(ua) ||\n [];\n var platform_match = /(ipad)/.exec(ua) ||\n /(ipod)/.exec(ua) ||\n /(windows phone)/.exec(ua) ||\n /(iphone)/.exec(ua) ||\n /(kindle)/.exec(ua) ||\n /(android)/.exec(ua) ||\n /(windows)/.exec(ua) ||\n /(mac)/.exec(ua) ||\n /(linux)/.exec(ua) ||\n /(cros)/.exec(ua) ||\n [];\n var matched = {\n browser: match[5] || match[3] || match[1] || '',\n version: match[2] || match[4] || '0',\n majorVersion: match[4] || match[2] || '0',\n platform: platform_match[0] || ''\n };\n var browser = {};\n if (matched.browser) {\n browser[matched.browser] = true;\n var versionArray = matched.majorVersion.split('.');\n browser.version = {\n major: parseInt(matched.majorVersion, 10),\n string: matched.version\n };\n if (versionArray.length > 1) {\n browser.version.minor = parseInt(versionArray[1], 10);\n }\n if (versionArray.length > 2) {\n browser.version.build = parseInt(versionArray[2], 10);\n }\n }\n if (matched.platform) {\n browser[matched.platform] = true;\n }\n if (browser.chrome || browser.opr || browser.safari) {\n browser.webkit = true;\n }\n // MSIE. IE11 has 'rv' identifer\n if (browser.rv || browser.iemobile) {\n if (browser.rv) {\n delete browser.rv;\n }\n var msie = 'msie';\n matched.browser = msie;\n browser[msie] = true;\n }\n // Microsoft Edge\n if (browser.edge) {\n delete browser.edge;\n var msedge = 'msedge';\n matched.browser = msedge;\n browser[msedge] = true;\n }\n // Opera 15+\n if (browser.opr) {\n var opera = 'opera';\n matched.browser = opera;\n browser[opera] = true;\n }\n // Stock android browsers are marked as Safari\n if (browser.safari && browser.android) {\n var android = 'android';\n matched.browser = android;\n browser[android] = true;\n }\n browser.name = matched.browser;\n browser.platform = matched.platform;\n for (var key in Browser) {\n if (Browser.hasOwnProperty(key)) {\n delete Browser[key];\n }\n }\n Object.assign(Browser, browser);\n}\ndetect();\n/* harmony default export */ __webpack_exports__[\"default\"] = (Browser);\n\n\n/***/ }),\n\n/***/ \"./src/utils/exception.js\":\n/*!********************************!*\\\n !*** ./src/utils/exception.js ***!\n \\********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RuntimeException\": function() { return /* binding */ RuntimeException; },\n/* harmony export */ \"IllegalStateException\": function() { return /* binding */ IllegalStateException; },\n/* harmony export */ \"InvalidArgumentException\": function() { return /* binding */ InvalidArgumentException; },\n/* harmony export */ \"NotImplementedException\": function() { return /* binding */ NotImplementedException; }\n/* harmony export */ });\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RuntimeException = /** @class */ (function () {\n function RuntimeException(message) {\n this._message = message;\n }\n Object.defineProperty(RuntimeException.prototype, \"name\", {\n get: function () {\n return 'RuntimeException';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RuntimeException.prototype, \"message\", {\n get: function () {\n return this._message;\n },\n enumerable: false,\n configurable: true\n });\n RuntimeException.prototype.toString = function () {\n return this.name + ': ' + this.message;\n };\n return RuntimeException;\n}());\n\nvar IllegalStateException = /** @class */ (function (_super) {\n __extends(IllegalStateException, _super);\n function IllegalStateException(message) {\n return _super.call(this, message) || this;\n }\n Object.defineProperty(IllegalStateException.prototype, \"name\", {\n get: function () {\n return 'IllegalStateException';\n },\n enumerable: false,\n configurable: true\n });\n return IllegalStateException;\n}(RuntimeException));\n\nvar InvalidArgumentException = /** @class */ (function (_super) {\n __extends(InvalidArgumentException, _super);\n function InvalidArgumentException(message) {\n return _super.call(this, message) || this;\n }\n Object.defineProperty(InvalidArgumentException.prototype, \"name\", {\n get: function () {\n return 'InvalidArgumentException';\n },\n enumerable: false,\n configurable: true\n });\n return InvalidArgumentException;\n}(RuntimeException));\n\nvar NotImplementedException = /** @class */ (function (_super) {\n __extends(NotImplementedException, _super);\n function NotImplementedException(message) {\n return _super.call(this, message) || this;\n }\n Object.defineProperty(NotImplementedException.prototype, \"name\", {\n get: function () {\n return 'NotImplementedException';\n },\n enumerable: false,\n configurable: true\n });\n return NotImplementedException;\n}(RuntimeException));\n\n\n\n/***/ }),\n\n/***/ \"./src/utils/logger.js\":\n/*!*****************************!*\\\n !*** ./src/utils/logger.js ***!\n \\*****************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Log = /** @class */ (function () {\n function Log() {\n }\n Log.e = function (tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'error', str);\n }\n if (!Log.ENABLE_ERROR) {\n return;\n }\n if (console.error) {\n console.error(str);\n }\n else if (console.warn) {\n console.warn(str);\n }\n else {\n console.log(str);\n }\n };\n Log.i = function (tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'info', str);\n }\n if (!Log.ENABLE_INFO) {\n return;\n }\n if (console.info) {\n console.info(str);\n }\n else {\n console.log(str);\n }\n };\n Log.w = function (tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'warn', str);\n }\n if (!Log.ENABLE_WARN) {\n return;\n }\n if (console.warn) {\n console.warn(str);\n }\n else {\n console.log(str);\n }\n };\n Log.d = function (tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'debug', str);\n }\n if (!Log.ENABLE_DEBUG) {\n return;\n }\n if (console.debug) {\n console.debug(str);\n }\n else {\n console.log(str);\n }\n };\n Log.v = function (tag, msg) {\n if (!tag || Log.FORCE_GLOBAL_TAG)\n tag = Log.GLOBAL_TAG;\n var str = \"[\" + tag + \"] > \" + msg;\n if (Log.ENABLE_CALLBACK) {\n Log.emitter.emit('log', 'verbose', str);\n }\n if (!Log.ENABLE_VERBOSE) {\n return;\n }\n console.log(str);\n };\n return Log;\n}());\nLog.GLOBAL_TAG = 'flv.js';\nLog.FORCE_GLOBAL_TAG = false;\nLog.ENABLE_ERROR = true;\nLog.ENABLE_INFO = true;\nLog.ENABLE_WARN = true;\nLog.ENABLE_DEBUG = true;\nLog.ENABLE_VERBOSE = true;\nLog.ENABLE_CALLBACK = false;\nLog.emitter = new (events__WEBPACK_IMPORTED_MODULE_0___default())();\n/* harmony default export */ __webpack_exports__[\"default\"] = (Log);\n\n\n/***/ }),\n\n/***/ \"./src/utils/logging-control.js\":\n/*!**************************************!*\\\n !*** ./src/utils/logging-control.js ***!\n \\**************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger.js */ \"./src/utils/logger.js\");\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nvar LoggingControl = /** @class */ (function () {\n function LoggingControl() {\n }\n Object.defineProperty(LoggingControl, \"forceGlobalTag\", {\n get: function () {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.FORCE_GLOBAL_TAG;\n },\n set: function (enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.FORCE_GLOBAL_TAG = enable;\n LoggingControl._notifyChange();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoggingControl, \"globalTag\", {\n get: function () {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.GLOBAL_TAG;\n },\n set: function (tag) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.GLOBAL_TAG = tag;\n LoggingControl._notifyChange();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoggingControl, \"enableAll\", {\n get: function () {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_VERBOSE\n && _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_DEBUG\n && _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_INFO\n && _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_WARN\n && _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_ERROR;\n },\n set: function (enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_VERBOSE = enable;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_DEBUG = enable;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_INFO = enable;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_WARN = enable;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_ERROR = enable;\n LoggingControl._notifyChange();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoggingControl, \"enableDebug\", {\n get: function () {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_DEBUG;\n },\n set: function (enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_DEBUG = enable;\n LoggingControl._notifyChange();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoggingControl, \"enableVerbose\", {\n get: function () {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_VERBOSE;\n },\n set: function (enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_VERBOSE = enable;\n LoggingControl._notifyChange();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoggingControl, \"enableInfo\", {\n get: function () {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_INFO;\n },\n set: function (enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_INFO = enable;\n LoggingControl._notifyChange();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoggingControl, \"enableWarn\", {\n get: function () {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_WARN;\n },\n set: function (enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_WARN = enable;\n LoggingControl._notifyChange();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoggingControl, \"enableError\", {\n get: function () {\n return _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_ERROR;\n },\n set: function (enable) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_ERROR = enable;\n LoggingControl._notifyChange();\n },\n enumerable: false,\n configurable: true\n });\n LoggingControl.getConfig = function () {\n return {\n globalTag: _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.GLOBAL_TAG,\n forceGlobalTag: _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.FORCE_GLOBAL_TAG,\n enableVerbose: _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_VERBOSE,\n enableDebug: _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_DEBUG,\n enableInfo: _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_INFO,\n enableWarn: _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_WARN,\n enableError: _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_ERROR,\n enableCallback: _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_CALLBACK\n };\n };\n LoggingControl.applyConfig = function (config) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.GLOBAL_TAG = config.globalTag;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.FORCE_GLOBAL_TAG = config.forceGlobalTag;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_VERBOSE = config.enableVerbose;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_DEBUG = config.enableDebug;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_INFO = config.enableInfo;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_WARN = config.enableWarn;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_ERROR = config.enableError;\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_CALLBACK = config.enableCallback;\n };\n LoggingControl._notifyChange = function () {\n var emitter = LoggingControl.emitter;\n if (emitter.listenerCount('change') > 0) {\n var config = LoggingControl.getConfig();\n emitter.emit('change', config);\n }\n };\n LoggingControl.registerListener = function (listener) {\n LoggingControl.emitter.addListener('change', listener);\n };\n LoggingControl.removeListener = function (listener) {\n LoggingControl.emitter.removeListener('change', listener);\n };\n LoggingControl.addLogListener = function (listener) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.emitter.addListener('log', listener);\n if (_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.emitter.listenerCount('log') > 0) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_CALLBACK = true;\n LoggingControl._notifyChange();\n }\n };\n LoggingControl.removeLogListener = function (listener) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.emitter.removeListener('log', listener);\n if (_logger_js__WEBPACK_IMPORTED_MODULE_1__.default.emitter.listenerCount('log') === 0) {\n _logger_js__WEBPACK_IMPORTED_MODULE_1__.default.ENABLE_CALLBACK = false;\n LoggingControl._notifyChange();\n }\n };\n return LoggingControl;\n}());\nLoggingControl.emitter = new (events__WEBPACK_IMPORTED_MODULE_0___default())();\n/* harmony default export */ __webpack_exports__[\"default\"] = (LoggingControl);\n\n\n/***/ }),\n\n/***/ \"./src/utils/polyfill.js\":\n/*!*******************************!*\\\n !*** ./src/utils/polyfill.js ***!\n \\*******************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Polyfill = /** @class */ (function () {\n function Polyfill() {\n }\n Polyfill.install = function () {\n // ES6 Object.setPrototypeOf\n Object.setPrototypeOf = Object.setPrototypeOf || function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n };\n // ES6 Object.assign\n Object.assign = Object.assign || function (target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n if (source !== undefined && source !== null) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n output[key] = source[key];\n }\n }\n }\n }\n return output;\n };\n // ES6 Promise (missing support in IE11)\n if (typeof self.Promise !== 'function') {\n __webpack_require__(/*! es6-promise */ \"./node_modules/es6-promise/dist/es6-promise.js\").polyfill();\n }\n };\n return Polyfill;\n}());\nPolyfill.install();\n/* harmony default export */ __webpack_exports__[\"default\"] = (Polyfill);\n\n\n/***/ }),\n\n/***/ \"./src/utils/utf8-conv.js\":\n/*!********************************!*\\\n !*** ./src/utils/utf8-conv.js ***!\n \\********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2016 Bilibili. All Rights Reserved.\n *\n * This file is derived from C++ project libWinTF8 (https://github.com/m13253/libWinTF8)\n * @author zheng qian \n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction checkContinuation(uint8array, start, checkLength) {\n var array = uint8array;\n if (start + checkLength < array.length) {\n while (checkLength--) {\n if ((array[++start] & 0xC0) !== 0x80)\n return false;\n }\n return true;\n }\n else {\n return false;\n }\n}\nfunction decodeUTF8(uint8array) {\n var out = [];\n var input = uint8array;\n var i = 0;\n var length = uint8array.length;\n while (i < length) {\n if (input[i] < 0x80) {\n out.push(String.fromCharCode(input[i]));\n ++i;\n continue;\n }\n else if (input[i] < 0xC0) {\n // fallthrough\n }\n else if (input[i] < 0xE0) {\n if (checkContinuation(input, i, 1)) {\n var ucs4 = (input[i] & 0x1F) << 6 | (input[i + 1] & 0x3F);\n if (ucs4 >= 0x80) {\n out.push(String.fromCharCode(ucs4 & 0xFFFF));\n i += 2;\n continue;\n }\n }\n }\n else if (input[i] < 0xF0) {\n if (checkContinuation(input, i, 2)) {\n var ucs4 = (input[i] & 0xF) << 12 | (input[i + 1] & 0x3F) << 6 | input[i + 2] & 0x3F;\n if (ucs4 >= 0x800 && (ucs4 & 0xF800) !== 0xD800) {\n out.push(String.fromCharCode(ucs4 & 0xFFFF));\n i += 3;\n continue;\n }\n }\n }\n else if (input[i] < 0xF8) {\n if (checkContinuation(input, i, 3)) {\n var ucs4 = (input[i] & 0x7) << 18 | (input[i + 1] & 0x3F) << 12\n | (input[i + 2] & 0x3F) << 6 | (input[i + 3] & 0x3F);\n if (ucs4 > 0x10000 && ucs4 < 0x110000) {\n ucs4 -= 0x10000;\n out.push(String.fromCharCode((ucs4 >>> 10) | 0xD800));\n out.push(String.fromCharCode((ucs4 & 0x3FF) | 0xDC00));\n i += 4;\n continue;\n }\n }\n }\n out.push(String.fromCharCode(0xFFFD));\n ++i;\n }\n return out.join('');\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (decodeUTF8);\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = __webpack_modules__;\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// module factories are used so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/index.js\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=flv.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var transform = (function() {\n var properties = [\n 'oTransform', // Opera 11.5\n 'msTransform', // IE 9\n 'mozTransform',\n 'webkitTransform',\n 'transform'\n ];\n var style = document.createElement('div').style;\n for (var i = 0; i < properties.length; i++) {\n /* istanbul ignore else */\n if (properties[i] in style) {\n return properties[i];\n }\n }\n /* istanbul ignore next */\n return 'transform';\n}());\n\nfunction createCommentNode(cmt) {\n var node = document.createElement('div');\n node.style.cssText = 'position:absolute;';\n if (typeof cmt.render === 'function') {\n var $el = cmt.render();\n if ($el instanceof HTMLElement) {\n node.appendChild($el);\n return node;\n }\n }\n node.textContent = cmt.text;\n if (cmt.style) {\n for (var key in cmt.style) {\n node.style[key] = cmt.style[key];\n }\n }\n return node;\n}\n\nfunction init() {\n var stage = document.createElement('div');\n stage.style.cssText = 'overflow:hidden;white-space:nowrap;transform:translateZ(0);';\n return stage;\n}\n\nfunction clear(stage) {\n var lc = stage.lastChild;\n while (lc) {\n stage.removeChild(lc);\n lc = stage.lastChild;\n }\n}\n\nfunction resize(stage, width, height) {\n stage.style.width = width + 'px';\n stage.style.height = height + 'px';\n}\n\nfunction framing() {\n //\n}\n\nfunction setup(stage, comments) {\n var df = document.createDocumentFragment();\n var i = 0;\n var cmt = null;\n for (i = 0; i < comments.length; i++) {\n cmt = comments[i];\n cmt.node = cmt.node || createCommentNode(cmt);\n df.appendChild(cmt.node);\n }\n if (comments.length) {\n stage.appendChild(df);\n }\n for (i = 0; i < comments.length; i++) {\n cmt = comments[i];\n cmt.width = cmt.width || cmt.node.offsetWidth;\n cmt.height = cmt.height || cmt.node.offsetHeight;\n }\n}\n\nfunction render(stage, cmt) {\n cmt.node.style[transform] = 'translate(' + cmt.x + 'px,' + cmt.y + 'px)';\n}\n\n/* eslint no-invalid-this: 0 */\nfunction remove(stage, cmt) {\n stage.removeChild(cmt.node);\n /* istanbul ignore else */\n if (!this.media) {\n cmt.node = null;\n }\n}\n\nvar domEngine = {\n name: 'dom',\n init: init,\n clear: clear,\n resize: resize,\n framing: framing,\n setup: setup,\n render: render,\n remove: remove,\n};\n\nconst dpr = window.devicePixelRatio || 1;\n\nvar canvasHeightCache = Object.create(null);\n\nfunction canvasHeight(font, fontSize) {\n if (canvasHeightCache[font]) {\n return canvasHeightCache[font];\n }\n var height = 12;\n var regex = /(\\d+(?:\\.\\d+)?)(px|%|em|rem)(?:\\s*\\/\\s*(\\d+(?:\\.\\d+)?)(px|%|em|rem)?)?/;\n var p = font.match(regex);\n if (p) {\n var fs = p[1] * 1 || 10;\n var fsu = p[2];\n var lh = p[3] * 1 || 1.2;\n var lhu = p[4];\n if (fsu === '%') fs *= fontSize.container / 100;\n if (fsu === 'em') fs *= fontSize.container;\n if (fsu === 'rem') fs *= fontSize.root;\n if (lhu === 'px') height = lh;\n if (lhu === '%') height = fs * lh / 100;\n if (lhu === 'em') height = fs * lh;\n if (lhu === 'rem') height = fontSize.root * lh;\n if (lhu === undefined) height = fs * lh;\n }\n canvasHeightCache[font] = height;\n return height;\n}\n\nfunction createCommentCanvas(cmt, fontSize) {\n if (typeof cmt.render === 'function') {\n var cvs = cmt.render();\n if (cvs instanceof HTMLCanvasElement) {\n cmt.width = cvs.width;\n cmt.height = cvs.height;\n return cvs;\n }\n }\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n ctx.scale(dpr, dpr);\n var style = cmt.style || {};\n style.font = style.font || '10px sans-serif';\n style.textBaseline = style.textBaseline || 'bottom';\n var strokeWidth = style.lineWidth * 1;\n strokeWidth = (strokeWidth > 0 && strokeWidth !== Infinity)\n ? Math.ceil(strokeWidth)\n : !!style.strokeStyle * 1;\n ctx.font = style.font;\n cmt.width = cmt.width ||\n Math.max(1, Math.ceil(ctx.measureText(cmt.text).width) + strokeWidth * 2);\n cmt.height = cmt.height ||\n Math.ceil(canvasHeight(style.font, fontSize)) + strokeWidth * 2;\n canvas.width = cmt.width * dpr;\n canvas.height = cmt.height * dpr;\n for (var key in style) {\n ctx[key] = style[key];\n }\n var baseline = 0;\n switch (style.textBaseline) {\n case 'top':\n case 'hanging':\n baseline = strokeWidth;\n break;\n case 'middle':\n baseline = cmt.height >> 1;\n break;\n default:\n baseline = cmt.height - strokeWidth;\n }\n if (style.strokeStyle) {\n ctx.strokeText(cmt.text, strokeWidth, baseline);\n }\n ctx.fillText(cmt.text, strokeWidth, baseline);\n return canvas;\n}\n\nfunction computeFontSize(el) {\n return window\n .getComputedStyle(el, null)\n .getPropertyValue('font-size')\n .match(/(.+)px/)[1] * 1;\n}\n\nfunction init$1(container) {\n var stage = document.createElement('canvas');\n stage.context = stage.getContext('2d');\n stage._fontSize = {\n root: computeFontSize(document.getElementsByTagName('html')[0]),\n container: computeFontSize(container)\n };\n return stage;\n}\n\nfunction clear$1(stage, comments) {\n stage.context.clearRect(0, 0, stage.width, stage.height);\n // avoid caching canvas to reduce memory usage\n for (var i = 0; i < comments.length; i++) {\n comments[i].canvas = null;\n }\n}\n\nfunction resize$1(stage, width, height) {\n stage.width = width * dpr;\n stage.height = height * dpr;\n stage.style.width = width + 'px';\n stage.style.height = height + 'px';\n}\n\nfunction framing$1(stage) {\n stage.context.clearRect(0, 0, stage.width, stage.height);\n}\n\nfunction setup$1(stage, comments) {\n for (var i = 0; i < comments.length; i++) {\n var cmt = comments[i];\n cmt.canvas = createCommentCanvas(cmt, stage._fontSize);\n }\n}\n\nfunction render$1(stage, cmt) {\n stage.context.drawImage(cmt.canvas, cmt.x * dpr, cmt.y * dpr);\n}\n\nfunction remove$1(stage, cmt) {\n // avoid caching canvas to reduce memory usage\n cmt.canvas = null;\n}\n\nvar canvasEngine = {\n name: 'canvas',\n init: init$1,\n clear: clear$1,\n resize: resize$1,\n framing: framing$1,\n setup: setup$1,\n render: render$1,\n remove: remove$1,\n};\n\n/* eslint no-invalid-this: 0 */\nfunction allocate(cmt) {\n var that = this;\n var ct = this.media ? this.media.currentTime : Date.now() / 1000;\n var pbr = this.media ? this.media.playbackRate : 1;\n function willCollide(cr, cmt) {\n if (cmt.mode === 'top' || cmt.mode === 'bottom') {\n return ct - cr.time < that._.duration;\n }\n var crTotalWidth = that._.width + cr.width;\n var crElapsed = crTotalWidth * (ct - cr.time) * pbr / that._.duration;\n if (cr.width > crElapsed) {\n return true;\n }\n // (rtl mode) the right end of `cr` move out of left side of stage\n var crLeftTime = that._.duration + cr.time - ct;\n var cmtTotalWidth = that._.width + cmt.width;\n var cmtTime = that.media ? cmt.time : cmt._utc;\n var cmtElapsed = cmtTotalWidth * (ct - cmtTime) * pbr / that._.duration;\n var cmtArrival = that._.width - cmtElapsed;\n // (rtl mode) the left end of `cmt` reach the left side of stage\n var cmtArrivalTime = that._.duration * cmtArrival / (that._.width + cmt.width);\n return crLeftTime > cmtArrivalTime;\n }\n var crs = this._.space[cmt.mode];\n var last = 0;\n var curr = 0;\n for (var i = 1; i < crs.length; i++) {\n var cr = crs[i];\n var requiredRange = cmt.height;\n if (cmt.mode === 'top' || cmt.mode === 'bottom') {\n requiredRange += cr.height;\n }\n if (cr.range - cr.height - crs[last].range >= requiredRange) {\n curr = i;\n break;\n }\n if (willCollide(cr, cmt)) {\n last = i;\n }\n }\n var channel = crs[last].range;\n var crObj = {\n range: channel + cmt.height,\n time: this.media ? cmt.time : cmt._utc,\n width: cmt.width,\n height: cmt.height\n };\n crs.splice(last + 1, curr - last - 1, crObj);\n\n if (cmt.mode === 'bottom') {\n return this._.height - cmt.height - channel % this._.height;\n }\n return channel % (this._.height - cmt.height);\n}\n\n/* eslint no-invalid-this: 0 */\nfunction createEngine(framing, setup, render, remove) {\n return function() {\n framing(this._.stage);\n var dn = Date.now() / 1000;\n var ct = this.media ? this.media.currentTime : dn;\n var pbr = this.media ? this.media.playbackRate : 1;\n var cmt = null;\n var cmtt = 0;\n var i = 0;\n for (i = this._.runningList.length - 1; i >= 0; i--) {\n cmt = this._.runningList[i];\n cmtt = this.media ? cmt.time : cmt._utc;\n if (ct - cmtt > this._.duration) {\n remove(this._.stage, cmt);\n this._.runningList.splice(i, 1);\n }\n }\n var pendingList = [];\n while (this._.position < this.comments.length) {\n cmt = this.comments[this._.position];\n cmtt = this.media ? cmt.time : cmt._utc;\n if (cmtt >= ct) {\n break;\n }\n // when clicking controls to seek, media.currentTime may changed before\n // `pause` event is fired, so here skips comments out of duration,\n // see https://github.com/weizhenye/Danmaku/pull/30 for details.\n if (ct - cmtt > this._.duration) {\n ++this._.position;\n continue;\n }\n if (this.media) {\n cmt._utc = dn - (this.media.currentTime - cmt.time);\n }\n pendingList.push(cmt);\n ++this._.position;\n }\n setup(this._.stage, pendingList);\n for (i = 0; i < pendingList.length; i++) {\n cmt = pendingList[i];\n cmt.y = allocate.call(this, cmt);\n this._.runningList.push(cmt);\n }\n for (i = 0; i < this._.runningList.length; i++) {\n cmt = this._.runningList[i];\n var totalWidth = this._.width + cmt.width;\n var elapsed = totalWidth * (dn - cmt._utc) * pbr / this._.duration;\n if (cmt.mode === 'ltr') cmt.x = (elapsed - cmt.width + .5) | 0;\n if (cmt.mode === 'rtl') cmt.x = (this._.width - elapsed + .5) | 0;\n if (cmt.mode === 'top' || cmt.mode === 'bottom') {\n cmt.x = (this._.width - cmt.width) >> 1;\n }\n render(this._.stage, cmt);\n }\n };\n}\n\nvar raf =\n window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n function(cb) {\n return setTimeout(cb, 50 / 3);\n };\n\nvar caf =\n window.cancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n clearTimeout;\n\nfunction binsearch(arr, prop, key) {\n var mid = 0;\n var left = 0;\n var right = arr.length;\n while (left < right - 1) {\n mid = (left + right) >> 1;\n if (key >= arr[mid][prop]) {\n left = mid;\n } else {\n right = mid;\n }\n }\n if (arr[left] && key < arr[left][prop]) {\n return left;\n }\n return right;\n}\n\n\nfunction formatMode(mode) {\n if (!/^(ltr|top|bottom)$/i.test(mode)) {\n return 'rtl';\n }\n return mode.toLowerCase();\n}\n\nfunction collidableRange() {\n var max = 9007199254740991;\n return [\n { range: 0, time: -max, width: max, height: 0 },\n { range: max, time: max, width: 0, height: 0 }\n ];\n}\n\nfunction resetSpace(space) {\n space.ltr = collidableRange();\n space.rtl = collidableRange();\n space.top = collidableRange();\n space.bottom = collidableRange();\n}\n\n/* eslint no-invalid-this: 0 */\nfunction play() {\n if (!this._.visible || !this._.paused) {\n return this;\n }\n this._.paused = false;\n if (this.media) {\n for (var i = 0; i < this._.runningList.length; i++) {\n var cmt = this._.runningList[i];\n cmt._utc = Date.now() / 1000 - (this.media.currentTime - cmt.time);\n }\n }\n var that = this;\n var engine = createEngine(\n this._.engine.framing.bind(this),\n this._.engine.setup.bind(this),\n this._.engine.render.bind(this),\n this._.engine.remove.bind(this)\n );\n function frame() {\n engine.call(that);\n that._.requestID = raf(frame);\n }\n this._.requestID = raf(frame);\n return this;\n}\n\n/* eslint no-invalid-this: 0 */\nfunction pause() {\n if (!this._.visible || this._.paused) {\n return this;\n }\n this._.paused = true;\n caf(this._.requestID);\n this._.requestID = 0;\n return this;\n}\n\n/* eslint no-invalid-this: 0 */\nfunction seek() {\n if (!this.media) {\n return this;\n }\n this.clear();\n resetSpace(this._.space);\n var position = binsearch(this.comments, 'time', this.media.currentTime);\n this._.position = Math.max(0, position - 1);\n return this;\n}\n\n/* eslint no-invalid-this: 0 */\nfunction bindEvents(_) {\n _.play = play.bind(this);\n _.pause = pause.bind(this);\n _.seeking = seek.bind(this);\n this.media.addEventListener('play', _.play);\n this.media.addEventListener('pause', _.pause);\n this.media.addEventListener('playing', _.play);\n this.media.addEventListener('waiting', _.pause);\n this.media.addEventListener('seeking', _.seeking);\n}\n\n/* eslint no-invalid-this: 0 */\nfunction unbindEvents(_) {\n this.media.removeEventListener('play', _.play);\n this.media.removeEventListener('pause', _.pause);\n this.media.removeEventListener('playing', _.play);\n this.media.removeEventListener('waiting', _.pause);\n this.media.removeEventListener('seeking', _.seeking);\n _.play = null;\n _.pause = null;\n _.seeking = null;\n}\n\n/* eslint-disable no-invalid-this */\nfunction init$2(opt) {\n this._ = {};\n this.container = opt.container || document.createElement('div');\n this.media = opt.media;\n this._.visible = true;\n /* istanbul ignore else */\n {\n this.engine = (opt.engine || 'DOM').toLowerCase();\n this._.engine = this.engine === 'canvas' ? canvasEngine : domEngine;\n }\n /* eslint-enable no-undef */\n this._.requestID = 0;\n\n this._.speed = Math.max(0, opt.speed) || 144;\n this._.duration = 4;\n\n this.comments = opt.comments || [];\n this.comments.sort(function(a, b) {\n return a.time - b.time;\n });\n for (var i = 0; i < this.comments.length; i++) {\n this.comments[i].mode = formatMode(this.comments[i].mode);\n }\n this._.runningList = [];\n this._.position = 0;\n\n this._.paused = true;\n if (this.media) {\n this._.listener = {};\n bindEvents.call(this, this._.listener);\n }\n\n this._.stage = this._.engine.init(this.container);\n this._.stage.style.cssText += 'position:relative;pointer-events:none;';\n\n this.resize();\n this.container.appendChild(this._.stage);\n\n this._.space = {};\n resetSpace(this._.space);\n\n if (!this.media || !this.media.paused) {\n seek.call(this);\n play.call(this);\n }\n return this;\n}\n\n/* eslint-disable no-invalid-this */\nfunction destroy() {\n if (!this.container) {\n return this;\n }\n\n pause.call(this);\n this.clear();\n this.container.removeChild(this._.stage);\n if (this.media) {\n unbindEvents.call(this, this._.listener);\n }\n for (var key in this) {\n /* istanbul ignore else */\n if (Object.prototype.hasOwnProperty.call(this, key)) {\n this[key] = null;\n }\n }\n return this;\n}\n\nvar properties = ['mode', 'time', 'text', 'render', 'style'];\n\n/* eslint-disable no-invalid-this */\nfunction emit(obj) {\n if (!obj || Object.prototype.toString.call(obj) !== '[object Object]') {\n return this;\n }\n var cmt = {};\n for (var i = 0; i < properties.length; i++) {\n if (obj[properties[i]] !== undefined) {\n cmt[properties[i]] = obj[properties[i]];\n }\n }\n cmt.text = (cmt.text || '').toString();\n cmt.mode = formatMode(cmt.mode);\n cmt._utc = Date.now() / 1000;\n if (this.media) {\n var position = 0;\n if (cmt.time === undefined) {\n cmt.time = this.media.currentTime;\n position = this._.position;\n } else {\n position = binsearch(this.comments, 'time', cmt.time);\n if (position < this._.position) {\n this._.position += 1;\n }\n }\n this.comments.splice(position, 0, cmt);\n } else {\n this.comments.push(cmt);\n }\n return this;\n}\n\n/* eslint-disable no-invalid-this */\nfunction show() {\n if (this._.visible) {\n return this;\n }\n this._.visible = true;\n if (this.media && this.media.paused) {\n return this;\n }\n seek.call(this);\n play.call(this);\n return this;\n}\n\n/* eslint-disable no-invalid-this */\nfunction hide() {\n if (!this._.visible) {\n return this;\n }\n pause.call(this);\n this.clear();\n this._.visible = false;\n return this;\n}\n\n/* eslint-disable no-invalid-this */\nfunction clear$2() {\n this._.engine.clear(this._.stage, this._.runningList);\n this._.runningList = [];\n return this;\n}\n\n/* eslint-disable no-invalid-this */\nfunction resize$2() {\n this._.width = this.container.offsetWidth;\n this._.height = this.container.offsetHeight;\n this._.engine.resize(this._.stage, this._.width, this._.height);\n this._.duration = this._.width / this._.speed;\n return this;\n}\n\nvar speed = {\n get: function() {\n return this._.speed;\n },\n set: function(s) {\n if (typeof s !== 'number' ||\n isNaN(s) ||\n !isFinite(s) ||\n s <= 0) {\n return this._.speed;\n }\n this._.speed = s;\n if (this._.width) {\n this._.duration = this._.width / s;\n }\n return s;\n }\n};\n\nfunction Danmaku(opt) {\n opt && init$2.call(this, opt);\n}\nDanmaku.prototype.destroy = function() {\n return destroy.call(this);\n};\nDanmaku.prototype.emit = function(cmt) {\n return emit.call(this, cmt);\n};\nDanmaku.prototype.show = function() {\n return show.call(this);\n};\nDanmaku.prototype.hide = function() {\n return hide.call(this);\n};\nDanmaku.prototype.clear = function() {\n return clear$2.call(this);\n};\nDanmaku.prototype.resize = function() {\n return resize$2.call(this);\n};\nObject.defineProperty(Danmaku.prototype, 'speed', speed);\n\nexport default Danmaku;\n","import Artplayer from 'artplayer';\r\nimport FlvJs from 'flv.js';\r\nimport Danmaku from 'danmaku';\r\n\r\nimport ploading from \"./img/ploading.gif\";\r\nimport state from \"./img/state.png\";\r\nimport indicator from \"./img/indicator.svg\";\r\n\r\n(() => {\r\n let hadPause = true,\r\n parmfu = function (item, defaul) {\r\n if (!item) return;\r\n var url = window.location.search.match(/(?![?|&]).*?(?=(&|$))/g),\r\n ii = new Array(2),\r\n io;\r\n for (var i = 0; i < url.length || url[i].length; i++) {\r\n ii = url[i].match(/([^=]+)/g);\r\n if (!ii || !ii[0] || io) break;\r\n io = ii[0] === item ? ii[1] : undefined;\r\n }\r\n return io ? io : defaul;\r\n },\r\n player = new Artplayer({\r\n container: '.artplayer-app',\r\n url: \"/stream?_=\" + new Date().getTime(),\r\n title: \"\" + new Date().getTime(),\r\n type: parmfu(\"type\",\"mp4\"),\r\n volume: 0.5,\r\n isLive: true,\r\n muted: false,\r\n autoplay: true,\r\n pip: true,\r\n autoSize: true,\r\n autoMini: true,\r\n screenshot: true,\r\n setting: true,\r\n loop: false,\r\n flip: true,\r\n playbackRate: true,\r\n aspectRatio: true,\r\n fullscreen: true,\r\n fullscreenWeb: true,\r\n subtitleOffset: true,\r\n miniProgressBar: true,\r\n mutex: true,\r\n backdrop: true,\r\n playsInline: true,\r\n autoPlayback: true,\r\n theme: '#23ade5',\r\n lang: navigator.language.toLowerCase(),\r\n whitelist: ['*'],\r\n moreVideoAttr: {\r\n crossOrigin: 'anonymous',\r\n },\r\n settings: [],\r\n contextmenu: [],\r\n layers: [],\r\n quality: [],\r\n thumbnails: {},\r\n subtitle: {},\r\n highlight: [],\r\n controls: [],\r\n icons: {\r\n loading: '',\r\n state: '',\r\n indicator: '',\r\n },\r\n customType: {\r\n flv: function (video, url) {\r\n if (FlvJs.isSupported()) {\r\n const flvPlayer = FlvJs.createPlayer({\r\n type: 'flv',\r\n url: url,\r\n });\r\n flvPlayer.attachMediaElement(video);\r\n flvPlayer.load();\r\n } else {\r\n art.notice.show = '不支持播放格式:flv';\r\n }\r\n },\r\n },\r\n });\r\n player.on('play', (...args) => {\r\n if (hadPause) player.switchUrl(\"/stream?_=\" + new Date().getTime(), new Date().getTime());\r\n hadPause = false;\r\n });\r\n player.on('pause', (...args) => {\r\n hadPause = true;\r\n });\r\n /**\r\n * ws 收发\r\n */\r\n function ws() {\r\n if (window[\"WebSocket\"]) {\r\n let danmaku = new Danmaku({\r\n container: document.getElementsByClassName('art-danmuku')[0],\r\n });\r\n setInterval(function () { danmaku.resize() }, 1000)\r\n var conn = new WebSocket(\"ws://\" + window.location.host + \"/ws\");\r\n conn.onopen = function () {\r\n setInterval(function () {\r\n conn.send(\"test\")\r\n }, 1000)\r\n }\r\n conn.onclose = function () {\r\n ws()\r\n };\r\n conn.onmessage = function (evt) {\r\n try {\r\n let data = JSON.parse(evt.data)\r\n danmaku.emit(data)\r\n } catch (e) {\r\n console.log(e)\r\n console.log(evt.data)\r\n }\r\n };\r\n }\r\n } ws();\r\n})()\r\n"],"names":["e","t","r","o","i","n","globalThis","self","window","g","a","parcelRequire4dc0","s","cache","l","module","require","bind","c","Error","code","u","resolve","p","Module","call","exports","this","isParcelRequire","id","bundle","modules","parent","register","Object","defineProperty","get","length","defineInteropFlag","interopDefault","d","f","h","m","v","y","b","x","w","j","k","S","I","R","$","O","M","T","E","F","C","P","z","D","H","A","L","U","Z","_","V","q","N","W","B","Y","G","X","J","Q","K","ee","te","re","oe","default","constructor","super","mergeDeep","option","isReady","isFocus","isDestroy","whitelist","template","events","state","storage","icons","i18n","notice","player","layers","controls","contextmenu","subtitle","ads","info","loading","hotkey","mask","setting","plugins","mobile","on","push","instances","version","env","build","config","utils","scheme","Emitter","validator","kindOf","html","container","url","poster","title","type","theme","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","playbackRate","aspectRatio","screenshot","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","useSSR","playsInline","lock","fastForward","autoPlayback","autoOrientation","settings","quality","highlight","thumbnails","number","column","style","encoding","moreVideoAttr","preload","isSafari","customType","lang","navigator","language","toLowerCase","proxy","query","destroy","splice","indexOf","emit","NOTICE_TIME","SETTING_WIDTH","SETTING_ITEM_WIDTH","SETTING_ITEM_HEIGHT","INDICATOR_SIZE","INDICATOR_SIZE_ICON","INDICATOR_SIZE_MOBILE","INDICATOR_SIZE_MOBILE_ICON","VOLUME_PANEL_WIDTH","VOLUME_HANDLE_WIDTH","RESIZE_TIME","SCROLL_TIME","SCROLL_GAP","AUTO_PLAYBACK_MAX","RECONNECT_TIME_MAX","RECONNECT_SLEEP_TIME","CONTROL_HIDE_TIME","DB_CLICE_TIME","MOBILE_AUTO_PLAYBACKRATE","MOBILE_AUTO_PLAYBACKRATE_TIME","MOBILE_AUTO_ORIENTATION_TIME","INFO_LOOP_TIME","FAST_FORWARD_VALUE","FAST_FORWARD_TIME","document","getElementById","createElement","textContent","head","appendChild","Artplayer","console","log","hqjoJ","Symbol","iterator","prototype","toString","Array","isArray","isBuffer","callee","message","Date","toDateString","getDate","setDate","stackTraceLimit","RegExp","flags","ignoreCase","multiline","global","throw","return","next","slice","replace","name","arguments","concat","join","keys","forEach","split","map","trim","filter","Boolean","some","fn","ctx","once","off","apply","fRZO2","__esModule","value","exportAll","hasOwnProperty","enumerable","export","geSvU","ff6Hs","querySelector","from","querySelectorAll","classList","add","remove","contains","Element","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","getComputedStyle","getPropertyValue","parseFloat","parentElement","children","isMobile","setAttribute","getBoundingClientRect","innerHeight","documentElement","clientHeight","innerWidth","clientWidth","top","height","left","width","composedPath","replaceChild","ki3pQ","userAgent","test","lDQPM","captureStackTrace","URL","createObjectURL","Blob","match","start","end","text","includes","pop","display","href","download","body","click","lMM6V","getOwnPropertyDescriptor","reduce","Promise","setTimeout","clearTimeout","MRJhs","Math","max","min","floor","errorHandle","disable","index","mounted","tooltip","selector","onSelect","position","time","eksZR","propertys","methods","prototypes","fCKwj","art","bqHdK","$container","tagName","every","dataset","artId","$original","cloneNode","desktop","innerHTML","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","addClass","replaceElement","languages","pl","cs","init","update","e7BQ4","JSON","parse","an7cR","fzROd","ie","ne","ae","se","le","ce","pe","ue","de","fe","cChak","def","currentSrc","async","getExt","sleep","show","src","e6Qkm","play","then","catch","pause","aPHUd","joISC","playing","set","currentTime","duration","secondToTime","seek","clamp","parseInt","Number","isNaN","hpnJy","aCsa8","revokeObjectURL","setStyle","videoWidth","videoHeight","bop8O","getContext","drawImage","toDataURL","toBlob","getDataURL","i63VK","isEnabled","isFullscreen","normalSize","aspectRatioReset","request","exit","removeClass","fullscreenEnabled","webkitSupportsFullscreen","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","aPwar","entries","change","fullscreenchange","error","fullscreenerror","requestFullscreen","exitFullscreen","toggle","onchange","onerror","addEventListener","removeEventListener","raw","defineProperties","fullscreenElement","element","bEKHA","hasClass","ibIuh","pictureInPictureEnabled","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitSupportsPresentationMode","webkitSetPresentationMode","webkitPresentationMode","kwpxq","loadedTime","buffered","e4Iws","fueZP","paused","ended","readyState","l6TMg","rect","pageXOffset","pageYOffset","joth7","rotate","toUpperCase","durkk","pageX","pageY","mini","append","cssText","isInViewport","del","eADqm","setProperty","$track","track","cues","startTime","endTime","aqLU7","attr","iEQHG","kJ9J9","now","$parent","kPHYl","ComponentOption","has","find","insertAdjacentElement","setStyles","preventDefault","childNodes","nodeType","hover","innerText","getStyle","inverseClass","awkUw","fullscreenOn","fullscreenOff","fullscreenWebOn","fullscreenWebOff","lFHYL","b8vU1","dRwzT","second","percentage","indicator","backgroundColor","loaded","played","target","includeFromEvent","ltYI1","cursor","volumeClose","lX5UX","lUoGG","loadImg","getPosFromEvent","naturalWidth","ceil","jvdQ0","k9pKK","switchQuality","aE690","clientX","clientY","queryAll","iMg4Y","duhqU","k3lJQ","c896w","video","toFixed","switch","textTrack","textTracks","activeCue","activeCues","escape","kind","fetch","arrayBuffer","TextDecoder","decode","vttToBlob","srtToVtt","assToVtt","j2hlX","destroyEvents","HTMLImageElement","ArtPlayerError","Image","complete","iP4Z9","aoIIW","throttle","screen","orientation","ixtiG","touches","aTHWZ","backward","forward","activeElement","getAttribute","keyCode","f2kxw","bOs9w","ic4th","timer","iLfmB","check","arrowLeft","arrowRight","unlock","hX0lQ","invok","ft8Zf","dfLel","j8dnn","fMoi9","auIjA","g3V1U","bcTkc","jDSoL","jqFLt","m9TwS","iWJrW","d5XKP","_parentItem","_parentList","Map","creatHeader","creatItem","icon","_$icon","_$html","_$tooltip","ah3Qs","normal","horizontal","vertical","j50mh","i17b6","localStorage","getItem","assign","setItem","stringify","clear","removeItem","jWfEd","aPIVP","startsWith","j87OI","times","aafSd","current","prev","isEnd","urlCache","switchUrl","fkUkB","factory","__webpack_modules__","__unused_webpack_exports","isFunction","len","vertxNext","customSchedulerFn","asap","callback","arg","queue","flush","scheduleFlush","browserWindow","undefined","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","process","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","channel","iterations","observer","node","onFulfillment","onRejection","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","object","promise","nextTick","createTextNode","observe","characterData","data","port1","onmessage","port2","postMessage","vertx","Function","runOnLoop","runOnContext","attemptVertx","random","substring","PENDING","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","reject","reason","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","TypeError","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","Enumerator","Constructor","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","resolver","needsResolver","initializePromise","needsNew","finally","all","race","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","polyfill","local","promiseToString","cast","ReflectOwnKeys","Reflect","ReflectApply","receiver","args","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","EventEmitter","emitter","errorListener","err","removeListener","eventTargetAgnosticAddListener","handler","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","existing","warning","create","newListener","unshift","warned","count","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","copy","wrapListener","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","listeners","addListener","prependListener","prependOnceListener","list","originalListener","shift","spliceOne","removeAllListeners","key","rawListeners","eventNames","webpackBootstrapFunc","installedModules","__nested_webpack_require_164__","moduleId","getter","configurable","property","ENTRY_MODULE","dependencyRegExp","quoteRegExp","str","getModuleDependencies","sources","queueName","retval","fnString","wrapperSignature","webpackRequireName","exec","hasValuesInQueues","queues","hasValues","options","main","requiredModules","modulesQueue","seenModules","moduleToCheck","newModules","newModulesKeys","getRequiredModules","entryModule","blob","bare","workerUrl","webkitURL","mozURL","msURL","worker","Worker","objectURL","__unused_webpack_module","__webpack_exports__","defaultConfig","createDefaultConfig","enableWorker","enableStashBuffer","stashInitialSize","lazyLoad","lazyLoadMaxDuration","lazyLoadRecoverDuration","deferLoadAfterSourceOpen","autoCleanupMaxBackwardDuration","autoCleanupMinBackwardDuration","statisticsInfoReportInterval","fixAudioTimestampGap","accurateSeek","seekType","seekParamStart","seekParamEnd","rangeLoadZeroStart","customSeekHandler","reuseRedirectedURL","headers","customLoader","_io_io_controller_js__WEBPACK_IMPORTED_MODULE_0__","_config_js__WEBPACK_IMPORTED_MODULE_1__","Features","supportMSEH264Playback","MediaSource","isTypeSupported","supportNetworkStreamIO","ioctl","loaderType","getNetworkLoaderTypeName","supportNativeMediaPlayback","mimeType","videoElement","canPlay","canPlayType","getFeatureList","features","mseFlvPlayback","mseLiveFlvPlayback","networkStreamIO","networkLoaderName","nativeMP4H264Playback","nativeWebmVP8Playback","nativeWebmVP9Playback","MediaInfo","hasAudio","hasVideo","audioCodec","videoCodec","audioDataRate","videoDataRate","audioSampleRate","audioChannelCount","fps","profile","level","refFrames","chromaFormat","sarNum","sarDen","metadata","segments","segmentCount","hasKeyframesIndex","keyframesIndex","isComplete","audioInfoComplete","videoInfoComplete","isSeekable","getNearestKeyframe","milliseconds","table","keyframeIdx","_search","fileposition","filepositions","idx","last","mid","lbound","ubound","SampleInfo","MediaSegmentInfo","IDRSampleList","MediaSegmentInfoList","dts","pts","originalDts","isSync","isSyncPoint","beginDts","endDts","beginPts","endPts","originalBeginDts","originalEndDts","syncPoints","firstSample","lastSample","appendSyncPoint","sampleInfo","_list","appendArray","getLastSyncPointBeforeDts","_type","_lastAppendLocation","isEmpty","_searchNearestSegmentBefore","_searchNearestSegmentAfter","mediaSegmentInfo","msi","lastAppendIdx","insertIdx","getLastSegmentBefore","getLastSampleBefore","segment","getLastSyncPointBefore","segmentIdx","events__WEBPACK_IMPORTED_MODULE_0__","events__WEBPACK_IMPORTED_MODULE_0___default","_utils_logger_js__WEBPACK_IMPORTED_MODULE_1__","_utils_browser_js__WEBPACK_IMPORTED_MODULE_2__","_mse_events_js__WEBPACK_IMPORTED_MODULE_3__","_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_5__","MSEController","TAG","_config","_emitter","autoCleanupSourceBuffer","onSourceOpen","_onSourceOpen","onSourceEnded","_onSourceEnded","onSourceClose","_onSourceClose","onSourceBufferError","_onSourceBufferError","onSourceBufferUpdateEnd","_onSourceBufferUpdateEnd","_mediaSource","_mediaSourceObjectURL","_mediaElement","_isBufferFull","_hasPendingEos","_requireSetMediaDuration","_pendingMediaDuration","_pendingSourceBufferInit","_mimeTypes","audio","_sourceBuffers","_lastInitSegments","_pendingSegments","_pendingRemoveRanges","_idrList","detachMediaElement","event","attachMediaElement","mediaElement","IllegalStateException","ms","ps","sb","removeSourceBuffer","endOfStream","removeAttribute","appendInitSegment","initSegment","deferred","is","codec","firstInitSegment","addSourceBuffer","ERROR","msg","updating","_doAppendSegments","safari","mediaDuration","_updateMediaSourceDuration","appendMediaSegment","mediaSegment","_needCleanupSourceBuffer","_doCleanupSourceBuffer","_hasPendingRemoveRanges","seconds","abort","_doRemoveRanges","lastInitSegment","_hasPendingSegments","doRemove","removeEnd","ranges","range","pendingSegments","timestampOffset","currentOffset","targetOffset","abs","byteLength","appendBuffer","BUFFER_FULL","pendings","SOURCE_OPEN","prr","UPDATE_END","webworkify_webpack__WEBPACK_IMPORTED_MODULE_1__","webworkify_webpack__WEBPACK_IMPORTED_MODULE_1___default","_utils_logger_js__WEBPACK_IMPORTED_MODULE_2__","_utils_logging_control_js__WEBPACK_IMPORTED_MODULE_3__","_transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_4__","_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__","_media_info_js__WEBPACK_IMPORTED_MODULE_6__","Transmuxer","mediaDataSource","_worker","_workerDestroying","_onWorkerMessage","cmd","param","onLoggingConfigChanged","_onLoggingConfigChanged","registerListener","getConfig","_controller","ctl","IO_ERROR","_onIOError","DEMUX_ERROR","_onDemuxError","INIT_SEGMENT","_onInitSegment","MEDIA_SEGMENT","_onMediaSegment","LOADING_COMPLETE","_onLoadingComplete","RECOVERED_EARLY_EOF","_onRecoveredEarlyEof","MEDIA_INFO","_onMediaInfo","METADATA_ARRIVED","_onMetaDataArrived","SCRIPTDATA_ARRIVED","_onScriptDataArrived","STATISTICS_INFO","_onStatisticsInfo","RECOMMEND_SEEKPOINT","_onRecommendSeekpoint","hasWorker","open","close","stop","resume","_this","mediaInfo","statisticsInfo","terminate","setPrototypeOf","logcat","_media_info_js__WEBPACK_IMPORTED_MODULE_3__","_demux_flv_demuxer_js__WEBPACK_IMPORTED_MODULE_4__","_remux_mp4_remuxer_js__WEBPACK_IMPORTED_MODULE_5__","_demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_6__","_io_io_controller_js__WEBPACK_IMPORTED_MODULE_7__","_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_8__","TransmuxingController","filesize","cors","withCredentials","_mediaDataSource","_currentSegmentIndex","totalDuration","timestampBase","referrerPolicy","_mediaInfo","_demuxer","_remuxer","_ioctl","_pendingSeekTime","_pendingResolveSeekPoint","_statisticsReporter","_disableStatisticsReporter","_loadSegment","_enableStatisticsReporter","segmentIndex","optionalFrom","dataSource","onError","_onIOException","onSeeked","_onIOSeeked","onComplete","_onIOComplete","onRedirect","_onIORedirect","onRecoveredEarlyEof","_onIORecoveredEarlyEof","bindDataSource","onDataArrival","_onInitChunkArrival","_internalAbort","isWorking","isPaused","targetSegmentIndex","_searchSegmentIndexContains","segmentInfo","keyframe","targetSegmentInfo","insertDiscontinuity","resetMediaInfo","_reportSegmentMediaInfo","byteStart","probeData","consumed","parseChunks","probe","mds","overridedDuration","overridedHasAudio","overridedHasVideo","_onDemuxException","onMediaInfo","onMetaDataArrived","onScriptDataArrived","onInitSegment","_onRemuxerInitSegmentArrival","onMediaSegment","_onRemuxerMediaSegmentArrival","FORMAT_UNSUPPORTED","extraData","nextSegmentIndex","flushStashedSamples","redirectedURL","seekpoint","setInterval","_reportStatisticsInfo","clearInterval","exportInfo","currentURL","hasRedirect","currentRedirectedURL","speed","currentSpeed","currentSegmentIndex","totalSegmentCount","_utils_logging_control_js__WEBPACK_IMPORTED_MODULE_0__","_utils_polyfill_js__WEBPACK_IMPORTED_MODULE_1__","_transmuxing_controller_js__WEBPACK_IMPORTED_MODULE_2__","_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_3__","controller","logcatListener","obj","onLoadingComplete","onStatisticsInfo","statInfo","onIOError","onDemuxError","onRecommendSeekpoint","install","applyConfig","enableCallback","addLogListener","removeLogListener","buf","_utils_logger_js__WEBPACK_IMPORTED_MODULE_0__","_utils_utf8_conv_js__WEBPACK_IMPORTED_MODULE_1__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_2__","ArrayBuffer","DataView","setInt16","Int16Array","AMF","parseScriptData","dataOffset","dataSize","name_1","parseValue","size","parseObject","parseString","isObjectEnd","objectEnd","parseVariable","getUint16","Uint8Array","parseLongString","getUint32","parseDate","timestamp","getFloat64","localTimeOffset","getInt16","offset","getUint8","amfstr","terminal","amfobj","amfvar","strictArrayLength","val","date","amfLongStr","OK","FORMAT_ERROR","CODEC_UNSUPPORTED","_utils_exception_js__WEBPACK_IMPORTED_MODULE_0__","ExpGolomb","uint8array","_buffer","_buffer_index","_total_bytes","_total_bits","_current_word","_current_word_bits_left","_fillCurrentWord","buffer_bytes_left","bytes_read","word","subarray","buffer","readBits","bits","InvalidArgumentException","result_1","result","bits_need_left","bits_read_next","result2","readBool","readByte","_skipLeadingZero","zero_count","readUEG","leading_zeros","readSEG","_amf_parser_js__WEBPACK_IMPORTED_MODULE_1__","_sps_parser_js__WEBPACK_IMPORTED_MODULE_2__","_demux_errors_js__WEBPACK_IMPORTED_MODULE_3__","_core_media_info_js__WEBPACK_IMPORTED_MODULE_4__","FLVDemuxer","_onError","_onTrackMetadata","_onDataAvailable","_dataOffset","_firstParse","_dispatch","_hasAudio","hasAudioTrack","_hasVideo","hasVideoTrack","_hasAudioFlagOverrided","_hasVideoFlagOverrided","_audioInitialMetadataDispatched","_videoInitialMetadataDispatched","_metadata","_audioMetadata","_videoMetadata","_naluLengthSize","_timestampBase","_timescale","_duration","_durationOverrided","_referenceFrameRate","fixed","fps_num","fps_den","_flvSoundRateTable","_mpegSamplingRates","_mpegAudioV10SampleRateTable","_mpegAudioV20SampleRateTable","_mpegAudioV25SampleRateTable","_mpegAudioL1BitRateTable","_mpegAudioL2BitRateTable","_mpegAudioL3BitRateTable","_videoTrack","sequenceNumber","samples","_audioTrack","_littleEndian","mismatch","array","loader","base","_isInitialMetadataDispatched","chunk","tagType","ts2","ts1","_parseAudioData","_parseVideoData","_parseScriptData","prevTagSize","scriptData","onMetaData","audiodatarate","videodatarate","framerate","keyframes","_parseKeyframesIndex","tagTimestamp","soundSpec","soundFormat","soundRate","soundRateIndex","soundType","meta","timescale","channelCount","aacData","_parseAACAudioData","packetType","misc","samplingRate","originalCodec","refSampleDuration","mi","aacSample","unit","_parseMP3AudioData","bitRate","mp3Sample","_parseAACAudioSpecificConfig","originalAudioObjectType","samplingIndex","audioObjectType","extensionSamplingIndex","samplingFrequence","channelConfig","requestHeader","ver","layer","bitrate_index","sampling_freq_index","channel_count","sample_rate","bit_rate","tagPosition","spec","frameType","codecId","_parseAVCVideoPacket","cts","_parseAVCDecoderConfigurationRecord","_parseAVCVideoData","avcc","avcProfile","spsCount","sps","parseSPS","codecWidth","codec_size","codecHeight","presentWidth","present_size","presentHeight","profile_string","level_string","bitDepth","bit_depth","chroma_format","sarRatio","sar_ratio","frameRate","frame_rate","codecArray","codecString","ref_frames","chroma_format_string","ppsCount","units","lengthSize","naluSize","unitType","avcSample","isKeyframe","_exp_golomb_js__WEBPACK_IMPORTED_MODULE_0__","SPSParser","_ebsp2rbsp","src_length","dst","dst_idx","rbsp","gb","profile_idc","level_idc","getProfileString","getLevelString","chroma_format_idc","scaling_list_count","_skipScalingList","pic_order_cnt_type","num_ref_frames_in_pic_order_cnt_cycle","pic_width_in_mbs_minus1","pic_height_in_map_units_minus1","frame_mbs_only_flag","frame_crop_left_offset","frame_crop_right_offset","frame_crop_top_offset","frame_crop_bottom_offset","sar_width","sar_height","fps_fixed","aspect_ratio_idc","num_units_in_tick","time_scale","sarScale","crop_unit_x","crop_unit_y","codec_width","codec_height","present_width","getChromaFormatString","last_scale","next_scale","chroma","_utils_polyfill_js__WEBPACK_IMPORTED_MODULE_0__","_core_features_js__WEBPACK_IMPORTED_MODULE_1__","_io_loader_js__WEBPACK_IMPORTED_MODULE_2__","_player_flv_player_js__WEBPACK_IMPORTED_MODULE_3__","_player_native_player_js__WEBPACK_IMPORTED_MODULE_4__","_player_player_events_js__WEBPACK_IMPORTED_MODULE_5__","_player_player_errors_js__WEBPACK_IMPORTED_MODULE_6__","_utils_logging_control_js__WEBPACK_IMPORTED_MODULE_7__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_8__","flvjs","optionalConfig","BaseLoader","LoaderStatus","LoaderErrors","Events","ErrorTypes","ErrorDetails","FlvPlayer","NativePlayer","LoggingControl","extendStatics","_utils_browser_js__WEBPACK_IMPORTED_MODULE_0__","_loader_js__WEBPACK_IMPORTED_MODULE_1__","__extends","__proto__","__","FetchStreamLoader","_super","seekHandler","_seekHandler","_needStash","_requestAbort","_contentLength","_receivedLength","isSupported","isWorkWellEdge","msedge","minor","browserNotBlacklisted","ReadableStream","_dataSource","_range","sourceURL","seekConfig","Headers","configHeaders","params","method","mode","credentials","AbortController","_abortController","signal","_status","kConnecting","res","kIdle","cancel","ok","status","_onURLRedirect","removeURLParameters","lengthHeader","_onContentLengthKnown","_pump","getReader","kError","RuntimeException","statusText","HTTP_STATUS_CODE_INVALID","aborted","EXCEPTION","kBuffering","chrome","reader","read","done","EARLY_EOF","kComplete","_onComplete","_onDataArrival","_speed_sampler_js__WEBPACK_IMPORTED_MODULE_1__","_loader_js__WEBPACK_IMPORTED_MODULE_2__","_fetch_stream_loader_js__WEBPACK_IMPORTED_MODULE_3__","_xhr_moz_chunked_loader_js__WEBPACK_IMPORTED_MODULE_4__","_xhr_range_loader_js__WEBPACK_IMPORTED_MODULE_5__","_websocket_loader_js__WEBPACK_IMPORTED_MODULE_6__","_range_seek_handler_js__WEBPACK_IMPORTED_MODULE_7__","_param_seek_handler_js__WEBPACK_IMPORTED_MODULE_8__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_9__","IOController","_extraData","_stashInitialSize","_stashUsed","_stashSize","_bufferSize","_stashBuffer","_stashByteStart","_enableStash","_loader","_loaderClass","_isWebSocketURL","_refTotalLength","_totalLength","_fullRequestFlag","_currentRange","_redirectedURL","_speedNormalized","_speedSampler","_speedNormalizeList","_isEarlyEofReconnecting","_paused","_resumeFrom","_onSeeked","_onRedirect","_selectSeekHandler","_selectLoader","_createLoader","lastSecondKBps","paramStart","paramEnd","needStashBuffer","onContentLengthKnown","onURLRedirect","_onLoaderChunkArrival","_onLoaderComplete","_onLoaderError","to","reset","bytes","_internalSeek","dropUnconsumed","_flushStashBuffer","requestRange","updateUrl","_expandBuffer","expectedBytes","bufferNewSize","newBuffer","stashOldArray","_normalizeSpeed","_adjustStashSize","normalized","stashSizeKB","bufferSize","_dispatchChunks","chunks","contentLength","receivedLength","addBytes","KBps","stashArray","remainArray","remain","UNRECOVERABLE_EARLY_EOF","nextFrom","CONNECTING_TIMEOUT","typeName","NotImplementedException","ParamSeekHandler","_startName","_endName","baseUrl","needAnd","seekedURL","baseURL","queryIndex","resultParams","pairs","pair","requireAnd","RangeSeekHandler","zeroStart","_zeroStart","SpeedSampler","_firstCheckpoint","_lastCheckpoint","_intervalBytes","_totalBytes","_lastSecondBytes","performance","_now","durationSeconds","currentKBps","_loader_js__WEBPACK_IMPORTED_MODULE_0__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_1__","WebSocketLoader","_ws","WebSocket","ws","binaryType","onopen","_onWebSocketOpen","onclose","_onWebSocketClose","_onWebSocketMessage","_onWebSocketError","_dispatchArrayBuffer","reader_1","FileReader","onload","readAsArrayBuffer","arraybuffer","MozChunkedLoader","_xhr","xhr","XMLHttpRequest","responseType","onreadystatechange","onprogress","onloadend","_requestURL","_onReadyStateChange","_onProgress","_onLoadEnd","_onXhrError","setRequestHeader","send","responseURL","total","response","_utils_exception_js__WEBPACK_IMPORTED_MODULE_3__","RangeLoader","_chunkSizeKBList","_currentChunkSizeKB","_currentSpeedNormalized","_zeroSpeedChunkCount","_waitForTotalLength","_totalLengthReceived","_currentRequestURL","_currentRedirectedURL","_currentRequestRange","_lastTimeLoaded","useRefTotalLength","_openSubRange","_internalOpen","chunkSize","_onLoad","openNextRange","delta","reportComplete","_player_events_js__WEBPACK_IMPORTED_MODULE_3__","_core_transmuxer_js__WEBPACK_IMPORTED_MODULE_4__","_core_transmuxing_events_js__WEBPACK_IMPORTED_MODULE_5__","_core_mse_controller_js__WEBPACK_IMPORTED_MODULE_6__","_core_mse_events_js__WEBPACK_IMPORTED_MODULE_7__","_player_errors_js__WEBPACK_IMPORTED_MODULE_8__","_config_js__WEBPACK_IMPORTED_MODULE_9__","_utils_exception_js__WEBPACK_IMPORTED_MODULE_10__","onvLoadedMetadata","_onvLoadedMetadata","onvSeeking","_onvSeeking","onvCanPlay","_onvCanPlay","onvStalled","_onvStalled","onvProgress","_onvProgress","_requestSetTime","_seekpointRecord","_progressChecker","_msectl","_transmuxer","_mseSourceOpened","_hasPendingLoad","_receivedCanPlay","_statisticsInfo","chromeNeedIDRFix","major","_alwaysSeekKeyframe","msie","unload","_onmseUpdateEnd","_onmseBufferFull","load","MEDIA_ERROR","MEDIA_MSE_ERROR","_suspendTransmuxer","NETWORK_ERROR","_fillStatisticsInfo","playerType","HTMLVideoElement","hasQualityInfo","decoded","dropped","getVideoPlaybackQuality","totalVideoFrames","droppedVideoFrames","webkitDecodedFrameCount","webkitDroppedFrameCount","decodedFrames","droppedFrames","currentRangeEnd","_checkProgressAndResume","needResume","_isTimepointBuffered","directSeek","directSeekBegin","directSeekBeginTime","videoBeginTime","idr","_checkAndApplyUnbufferedSeekpoint","recordTime","_checkAndResumeStuckPlayback","stalled","media","seekPoint","_player_events_js__WEBPACK_IMPORTED_MODULE_1__","_config_js__WEBPACK_IMPORTED_MODULE_2__","HTMLAudioElement","_io_loader_js__WEBPACK_IMPORTED_MODULE_0__","_demux_demux_errors_js__WEBPACK_IMPORTED_MODULE_1__","OTHER_ERROR","NETWORK_EXCEPTION","NETWORK_STATUS_CODE_INVALID","NETWORK_TIMEOUT","NETWORK_UNRECOVERABLE_EARLY_EOF","MEDIA_FORMAT_ERROR","MEDIA_FORMAT_UNSUPPORTED","MEDIA_CODEC_UNSUPPORTED","AAC","getSilentFrame","MP4","types","avc1","avcC","btrt","dinf","dref","esds","ftyp","hdlr","mdat","mdhd","mdia","mfhd","minf","moof","moov","mp4a","mvex","mvhd","sdtp","stbl","stco","stsc","stsd","stsz","stts","tfdt","tfhd","traf","trak","trun","trex","tkhd","vmhd","smhd","charCodeAt","constants","FTYP","STSD_PREFIX","STTS","STSC","STCO","STSZ","HDLR_VIDEO","HDLR_AUDIO","DREF","SMHD","VMHD","box","datas","arrayCount","generateInitSegment","trackId","xmhd","mp3","sampleRate","configSize","baseMediaDecodeTime","sampleCount","isLeading","dependsOn","isDependedOn","hasRedundancy","isNonSync","_mp4_generator_js__WEBPACK_IMPORTED_MODULE_1__","_aac_silent_js__WEBPACK_IMPORTED_MODULE_2__","_utils_browser_js__WEBPACK_IMPORTED_MODULE_3__","_core_media_segment_info_js__WEBPACK_IMPORTED_MODULE_4__","MP4Remuxer","_isLive","_dtsBase","_dtsBaseInited","_audioDtsBase","Infinity","_videoDtsBase","_audioNextDts","_videoNextDts","_audioStashedLastSample","_videoStashedLastSample","_audioMeta","_videoMeta","_audioSegmentInfoList","_videoSegmentInfoList","_forceFirstIDR","_fillSilentAfterSeek","_mp3UseMpegAudio","firefox","_fillAudioTimestampGap","producer","onDataAvailable","remux","onTrackMetadata","_onTrackMetadataReceived","audioTrack","videoTrack","_calculateDtsBase","_remuxVideo","_remuxAudio","metabox","videoSample","audioSample","force","lastDts","dtsCorrection","firstDts","mpegRawTrack","firstSegmentAfterSeek","insertPrefixSilentFrame","mdatbox","mdatBytes","sample","firstSampleOriginalDts","lastSample_1","distance","firstSampleDts","videoSegment","silentUnit","silentFrameDuration","mp4Samples","needFillSilentFrames","silentFrames","sampleDuration","curRefDts","frameCount","round","intDts","intDuration","frame","latest","moofbox","_mergeBoxes","lastPts","firstPts","lastSample_2","syncPoint","Browser","ua","platform_match","matched","browser","majorVersion","platform","versionArray","string","opr","webkit","rv","iemobile","edge","android","detect","_message","Log","tag","FORCE_GLOBAL_TAG","GLOBAL_TAG","ENABLE_CALLBACK","ENABLE_ERROR","ENABLE_INFO","ENABLE_WARN","ENABLE_DEBUG","debug","ENABLE_VERBOSE","_logger_js__WEBPACK_IMPORTED_MODULE_1__","enable","_notifyChange","globalTag","forceGlobalTag","enableVerbose","enableDebug","enableInfo","enableWarn","enableError","Polyfill","proto","output","source","checkContinuation","checkLength","out","fromCharCode","ucs4","__webpack_module_cache__","cachedModule","definition","prop","toStringTag","__webpack_require__","nmd","paths","transform","properties","createCommentNode","cmt","render","$el","HTMLElement","domEngine","stage","lc","resize","framing","setup","comments","df","createDocumentFragment","offsetWidth","offsetHeight","dpr","devicePixelRatio","canvasHeightCache","createCommentCanvas","fontSize","cvs","HTMLCanvasElement","canvas","scale","font","textBaseline","strokeWidth","lineWidth","strokeStyle","measureText","fs","fsu","lh","lhu","root","canvasHeight","baseline","strokeText","fillText","computeFontSize","el","canvasEngine","_fontSize","getElementsByTagName","clearRect","allocate","ct","pbr","willCollide","cr","crElapsed","crLeftTime","cmtTotalWidth","cmtTime","_utc","cmtElapsed","cmtArrival","crs","space","curr","requiredRange","crObj","raf","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","cb","caf","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","binsearch","right","formatMode","collidableRange","resetSpace","ltr","rtl","bottom","visible","runningList","engine","dn","cmtt","pendingList","elapsed","requestID","bindEvents","seeking","unbindEvents","init$2","opt","sort","hide","clear$2","resize$2","isFinite","Danmaku","hadPause","getTime","item","defaul","io","location","search","ii","parmfu","crossOrigin","flv","flvPlayer","danmaku","getElementsByClassName","conn","host","evt"],"sourceRoot":""} \ No newline at end of file diff --git a/go.mod b/go.mod index 6947fcb..0a3a3dc 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/mdp/qrterminal/v3 v3.0.0 github.com/miekg/dns v1.1.42 // indirect github.com/mitchellh/mapstructure v1.4.1 // indirect - github.com/qydysky/part v0.9.9 + github.com/qydysky/part v0.9.11 github.com/shirou/gopsutil v3.21.5+incompatible // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 diff --git a/go.sum b/go.sum index 2c7ab7c..5eb74de 100644 --- a/go.sum +++ b/go.sum @@ -1,26 +1,40 @@ github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46 h1:5sXbqlSomvdjlRbWyNqkPsJ3Fg+tQZCbgeX1VGljbQY= github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.3 h1:fpcw+r1N1h0Poc1F/pHbW40cUm/lMEQslZtCkBQ0UnM= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/christopher-dG/go-obs-websocket v0.0.0-20200720193653-c4fed10356a5 h1:UFBgEMSPv6a2vgzowHOPphVit+ZBNQ3+4Q+dEBgwIww= github.com/christopher-dG/go-obs-websocket v0.0.0-20200720193653-c4fed10356a5/go.mod h1:P5w+dDqQEbCMFAkmucNcEQ6xgAt/NP+Aw58OQfY/H/o= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0= +github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gotk3/gotk3 v0.6.0 h1:Aqlq4/6VabNwtCyA9M9zFNad5yHAqCi5heWnZ9y+3dA= github.com/gotk3/gotk3 v0.6.0/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q= +github.com/gotk3/gotk3 v0.6.1 h1:GJ400a0ecEEWrzjBvzBzH+pB/esEMIGdB9zPSmBdoeo= +github.com/gotk3/gotk3 v0.6.1/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q= github.com/klauspost/compress v1.11.6/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.13.1 h1:wXr2uRxZTJXHLly6qhJabee5JqIhTRoLBhDOA74hDEQ= github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= @@ -31,9 +45,13 @@ github.com/mdp/qrterminal/v3 v3.0.0/go.mod h1:NJpfAs7OAm77Dy8EkWrtE4aq+cE6McoLXl github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.42 h1:gWGe42RGaIqXQZ+r3WUGEKBEtvPHY2SXo4dqixDNxuY= github.com/miekg/dns v1.1.42/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= +github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= +github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/qydysky/part v0.9.7 h1:XaMB1QF5lCK5EsL30ffeaNw8/QpDPCs2MxWSWwTLR4s= @@ -42,35 +60,58 @@ github.com/qydysky/part v0.9.8 h1:9mfT7ZrwnfRI1PWds38DjGuTxMenaC0aiFGMO6aFNNQ= github.com/qydysky/part v0.9.8/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= github.com/qydysky/part v0.9.9 h1:7MWPq5WnFqHyE8owATgl90cdnxbPMVQWspvv1Fz7nts= github.com/qydysky/part v0.9.9/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= +github.com/qydysky/part v0.9.10 h1:fVSdBqNO1jC3bYDzd/VOl54UeZYyoEdaZgCNy3ADg5c= +github.com/qydysky/part v0.9.10/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= +github.com/qydysky/part v0.9.11 h1:5UIhZpjLyI13twnvYYz5yMfP/BKHHfk2twt+MN/jh6k= +github.com/qydysky/part v0.9.11/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= github.com/shirou/gopsutil v3.20.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil v3.21.5+incompatible h1:OloQyEerMi7JUrXiNzy8wQ5XN+baemxSl12QgIzt0jc= github.com/shirou/gopsutil v3.21.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= +github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/thedevsaddam/gojsonq v2.3.0+incompatible h1:i2lFTvGY4LvoZ2VUzedsFlRiyaWcJm3Uh6cQ9+HyQA8= github.com/thedevsaddam/gojsonq v2.3.0+incompatible/go.mod h1:RBcQaITThgJAAYKH7FNp2onYodRz8URfsuEGpAch0NA= github.com/thedevsaddam/gojsonq/v2 v2.5.2 h1:CoMVaYyKFsVj6TjU6APqAhAvC07hTI6IQen8PHzHYY0= github.com/thedevsaddam/gojsonq/v2 v2.5.2/go.mod h1:bv6Xa7kWy82uT0LnXPE2SzGqTj33TAEeR560MdJkiXs= github.com/tklauser/go-sysconf v0.3.6 h1:oc1sJWvKkmvIxhDHeKWvZS4f6AW+YcoguSfRF2/Hmo4= github.com/tklauser/go-sysconf v0.3.6/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= +github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= +github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.2.2 h1:oyhllyrScuYI6g+h/zUvNXNp1wy7x8qQy3t/piefldA= github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= +github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= +github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= +github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220812174116-3211cb980234 h1:RDqmgfe7SvlMWoqC3xwQ2blLO3fcWcxMa3eBLRdRW7E= +golang.org/x/net v0.0.0-20220812174116-3211cb980234/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -84,21 +125,40 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210113000019-eaf3bda374d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210611083646-a4fc73990273 h1:faDu4veV+8pcThn4fewv6TVlNCezafGoC1gM/mxQLbQ= golang.org/x/sys v0.0.0-20210611083646-a4fc73990273/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2 h1:fqTvyMIIj+HRzMmnzr9NtpHP6uVpvB5fkHcgPDC4nu8= +golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2 h1:BonxutuHCTL0rBDnZlKjpGIQFTjyUVTexFOdWkB6Fg0= +golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY= rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs= -- 2.39.2