9.1.0
View changelog with demos on mantine.dev website
You can now sponsor Mantine development with OpenCollective. All funds are used to improve Mantine and create new features and components.
New deduplicateInlineStyles prop on MantineProvider enables React 19 style tag deduplication for responsive style props. When many components share the same responsive style prop values, only a single <style /> tag is generated and hoisted to <head /> instead of each component injecting its own:
import { MantineProvider } from '@mantine/core';
function Demo() {
return (
<MantineProvider deduplicateInlineStyles>
{/* Your app here */}
</MantineProvider>
);
}
This can significantly improve performance when rendering large lists of components with identical responsive style props. See the styles performance guide for more details.
New use-mask hook attaches real-time input masking to any <input> element via a ref callback. It formats user input against a defined pattern and exposes both the masked display value and the raw unmasked value. The hook supports built-in and custom tokens, dynamic masks, character transforms, optional segments, and regex array format:
import { TextInput, Text } from '@mantine/core';
import { useMask } from '@mantine/hooks';
function Demo() {
const { ref, value, rawValue } = useMask({ mask: '(999) 999-9999' });
return (
<>
<TextInput ref={ref} label="Phone number" placeholder="(___) ___-____" />
<Text size="sm" mt="sm">Masked value: {value}</Text>
<Text size="sm">Raw value: {rawValue}</Text>
</>
);
}
New MaskInput component is a wrapper around use-mask hook that provides all standard input props (label, description, error, etc.) and supports all mask options:
import { MaskInput } from '@mantine/core';
function Demo() {
return (
<MaskInput
variant="default" size="sm" radius="md" label="Input label" withAsterisk={false} description="Input description" error=""
mask="(999) 999-9999"
placeholder="(___) ___-____"
/>
);
}
New Treemap component displays hierarchical data as a set of nested rectangles. It is based on the Treemap recharts component:
// Demo.tsx
import { Treemap } from '@mantine/charts';
import { data } from './data';
function Demo() {
return <Treemap data={data} />;
}
// data.ts
export const data = [
{
name: 'Frontend',
color: 'blue.8',
children: [
{ name: 'React', value: 400 },
{ name: 'Vue', value: 200 },
{ name: 'Angular', value: 150 },
],
},
{
name: 'Backend',
color: 'teal.8',
children: [
{ name: 'Node', value: 300 },
{ name: 'Python', value: 250 },
{ name: 'Go', value: 100 },
],
},
{
name: 'Mobile',
color: 'red.8',
children: [
{ name: 'React Native', value: 200 },
{ name: 'Flutter', value: 180 },
],
},
];
TimePicker component now supports type="duration" prop that allows entering durations that exceed 24 hours. In this mode, the hours field has no upper limit and the input width adjusts dynamically based on the entered value:
import { TimePicker } from '@mantine/dates';
function Demo() {
return <TimePicker label="Enter duration" type="duration" withSeconds />;
}
Heatmap component now supports withLegend prop that displays a color legend below the chart. Use legendLabels prop to customize labels (default: ['Less', 'More']):
// Demo.tsx
import { Heatmap } from '@mantine/charts';
import { data } from './data';
function Demo() {
return (
<Heatmap
data={data}
startDate="2024-02-16"
endDate="2025-02-16"
withMonthLabels
withWeekdayLabels
withLegend
/>
);
}
// data.ts
export const data = ${JSON.stringify(data, null, 2)};
MonthPicker and YearPicker components now support presets prop that allows adding predefined values to pick from. Presets are also available in MonthPickerInput and YearPickerInput components:
import dayjs from 'dayjs';
import { MonthPicker } from '@mantine/dates';
function Demo() {
return (
<MonthPicker
presets={[
{ value: dayjs().startOf('month').format('YYYY-MM-DD'), label: 'This month' },
{ value: dayjs().add(1, 'month').startOf('month').format('YYYY-MM-DD'), label: 'Next month' },
{ value: dayjs().subtract(1, 'month').startOf('month').format('YYYY-MM-DD'), label: 'Last month' },
{ value: dayjs().add(6, 'month').startOf('month').format('YYYY-MM-DD'), label: 'In 6 months' },
{ value: dayjs().add(1, 'year').startOf('month').format('YYYY-MM-DD'), label: 'Next year' },
{ value: dayjs().subtract(1, 'year').startOf('month').format('YYYY-MM-DD'), label: 'Last year' },
]}
/>
);
}
New use-roving-index hook implements the roving tabindex keyboard navigation pattern. It manages tabIndex state for a group of focusable elements, handles arrow key navigation with disabled item skipping, and supports both 1D lists and 2D grids:
import { Button, Group } from '@mantine/core';
import { useRovingIndex } from '@mantine/hooks';
const items = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'Code'];
function Demo() {
const { getItemProps } = useRovingIndex({
total: items.length,
orientation: 'horizontal',
loop: true,
});
return (
<Group gap="xs">
{items.map((item, index) => (
<Button key={item} variant="default" {...getItemProps({ index })}>
{item}
</Button>
))}
</Group>
);
}
Tree component now supports drag-and-drop reordering of nodes. Provide onDragDrop callback to enable it, and use the moveTreeNode utility to update data based on the result:
import { useState } from 'react';
import { CaretDownIcon } from '@phosphor-icons/react';
import { Group, moveTreeNode, RenderTreeNodePayload, Tree, TreeNodeData } from '@mantine/core';
const data: TreeNodeData[] = [
{
label: 'Pages',
value: 'pages',
children: [
{ label: 'index.tsx', value: 'pages/index.tsx' },
{ label: 'about.tsx', value: 'pages/about.tsx' },
{ label: 'contact.tsx', value: 'pages/contact.tsx' },
],
},
{
label: 'Components',
value: 'components',
children: [
{ label: 'Header.tsx', value: 'components/Header.tsx' },
{ label: 'Footer.tsx', value: 'components/Footer.tsx' },
{ label: 'Sidebar.tsx', value: 'components/Sidebar.tsx' },
],
},
{ label: 'package.json', value: 'package.json' },
{ label: 'tsconfig.json', value: 'tsconfig.json' },
];
function Leaf({ node, expanded, hasChildren, elementProps }: RenderTreeNodePayload) {
return (
<Group gap={5} {...elementProps}>
{hasChildren && (
<CaretDownIcon
size={18}
style={{ transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)' }}
/>
)}
<span>{node.label}</span>
</Group>
);
}
function Demo() {
const [treeData, setTreeData] = useState(data);
return (
<Tree
data={treeData}
onDragDrop={(payload) =>
setTreeData((current) => moveTreeNode(current, payload))
}
renderNode={(payload) => <Leaf {...payload} />}
/>
);
}
Tree now supports lazy loading of children. Set hasChildren: true on a node without providing children – when the node is expanded for the first time, onLoadChildren callback passed to useTree is called. Use mergeAsyncChildren utility to splice loaded children into your data:
import { useState } from 'react';
import { CaretDownIcon, SpinnerIcon } from '@phosphor-icons/react';
import {
Group,
mergeAsyncChildren,
RenderTreeNodePayload,
Tree,
TreeNodeData,
useTree,
} from '@mantine/core';
const initialData: TreeNodeData[] = [
{ label: 'Documents', value: 'documents', hasChildren: true },
{ label: 'Photos', value: 'photos', hasChildren: true },
{ label: 'README.md', value: 'readme' },
];
// Simulates an API call to load children
async function fetchChildren(parentValue: string): Promise<TreeNodeData[]> {
await new Promise((resolve) => setTimeout(resolve, 1000));
return [
{ label: `${parentValue}/file-1.txt`, value: `${parentValue}/file-1.txt` },
{ label: `${parentValue}/file-2.txt`, value: `${parentValue}/file-2.txt` },
{
label: `${parentValue}/subfolder`,
value: `${parentValue}/subfolder`,
hasChildren: true,
},
];
}
function Leaf({ node, expanded, hasChildren, elementProps, isLoading }: RenderTreeNodePayload) {
return (
<Group gap={5} wrap="nowrap" {...elementProps}>
{isLoading ? (
<SpinnerIcon size={18} style={{ animation: 'spin 1s linear infinite', flexShrink: 0 }} />
) : (
hasChildren && (
<CaretDownIcon
size={18}
style={{ transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)', flexShrink: 0 }}
/>
)
)}
<span style={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>
{node.label}
</span>
</Group>
);
}
function Demo() {
const [data, setData] = useState(initialData);
const tree = useTree({
onLoadChildren: async (value) => {
const children = await fetchChildren(value);
setData((prev) => mergeAsyncChildren(prev, value, children));
},
});
return (
<Tree
data={data}
tree={tree}
renderNode={(payload) => <Leaf {...payload} />}
/>
);
}
Tree now includes filterTreeData utility to filter tree data based on a search query. Matching nodes and their ancestors are preserved in the result. You can provide a custom filter function for advanced matching (for example, fuzzy search with fuse.js):
import { useMemo, useState } from 'react';
import {
filterTreeData,
getTreeExpandedState,
TextInput,
Tree,
TreeNodeData,
useTree,
} from '@mantine/core';
const data: TreeNodeData[] = [
{
label: 'src',
value: 'src',
children: [
{
label: 'components',
value: 'src/components',
children: [
{ label: 'Accordion.tsx', value: 'src/components/Accordion.tsx' },
{ label: 'Tree.tsx', value: 'src/components/Tree.tsx' },
{ label: 'Button.tsx', value: 'src/components/Button.tsx' },
{ label: 'Input.tsx', value: 'src/components/Input.tsx' },
],
},
{
label: 'hooks',
value: 'src/hooks',
children: [
{ label: 'use-debounce.ts', value: 'src/hooks/use-debounce.ts' },
{ label: 'use-media-query.ts', value: 'src/hooks/use-media-query.ts' },
],
},
],
},
{
label: 'public',
value: 'public',
children: [
{ label: 'favicon.ico', value: 'public/favicon.ico' },
{ label: 'logo.svg', value: 'public/logo.svg' },
],
},
{ label: 'package.json', value: 'package.json' },
{ label: 'tsconfig.json', value: 'tsconfig.json' },
];
function Demo() {
const [search, setSearch] = useState('');
const tree = useTree();
const filteredData = useMemo(
() => filterTreeData(data, search),
[search]
);
const handleSearchChange = (value: string) => {
setSearch(value);
if (value.trim()) {
const next = filterTreeData(data, value);
tree.setExpandedState(getTreeExpandedState(next, '*'));
} else {
tree.collapseAllNodes();
}
};
return (
<div>
<TextInput
placeholder="Search..."
mb="sm"
value={search}
onChange={(event) => handleSearchChange(event.currentTarget.value)}
/>
<Tree data={filteredData} tree={tree} />
</div>
);
}
Tree now supports withLines prop to display connecting lines showing parent-child relationships. Lines adapt to levelOffset spacing automatically:
import { getTreeExpandedState, Tree, useTree } from '@mantine/core';
import { data } from './data';
function Demo() {
const tree = useTree({
initialExpandedState: getTreeExpandedState(data, '*'),
});
return <Tree data={data} tree={tree} withLines />;
}
Tree now provides flattenTreeData utility and FlatTreeNode component for virtualized rendering of large trees. The component does not depend on any virtualization library – you supply one yourself (e.g., @tanstack/react-virtual):
import { useMemo, useRef } from 'react';
import { useVirtualizer } from '@tanstack/react-virtual';
import {
FlatTreeNode,
flattenTreeData,
getTreeExpandedState,
TreeNodeData,
useTree,
} from '@mantine/core';
const ITEM_HEIGHT = 30;
function generateTreeData(count: number): TreeNodeData[] {
const result: TreeNodeData[] = [];
let id = 0;
function addChildren(
parent: TreeNodeData[],
depth: number,
remaining: { count: number }
) {
const childCount = depth === 0 ? 20 : Math.floor(Math.random() * 8) + 2;
for (let i = 0; i < childCount && remaining.count > 0; i++) {
id++;
remaining.count--;
const hasChild =
depth < 3 && remaining.count > 0 && Math.random() > 0.3;
const node: TreeNodeData = {
label: `${hasChild ? 'Folder' : 'File'} ${id}`,
value: `node-${id}`,
children: hasChild ? [] : undefined,
};
if (hasChild) {
addChildren(node.children!, depth + 1, remaining);
}
parent.push(node);
}
}
addChildren(result, 0, { count });
return result;
}
const largeData = generateTreeData(2000);
const initialExpandedState = getTreeExpandedState(largeData, '*');
function Demo() {
const tree = useTree({
initialExpandedState,
});
const flatList = useMemo(
() => flattenTreeData(largeData, tree.expandedState),
[tree.expandedState]
);
const scrollParentRef = useRef<HTMLDivElement>(null);
const virtualizer = useVirtualizer({
count: flatList.length,
getScrollElement: () => scrollParentRef.current,
estimateSize: () => ITEM_HEIGHT,
overscan: 20,
});
return (
<div ref={scrollParentRef} style={{ height: 400, overflow: 'auto' }}>
<div
data-tree-root
role="tree"
style={{
height: virtualizer.getTotalSize(),
position: 'relative',
}}
>
{virtualizer.getVirtualItems().map((virtualItem) => (
<FlatTreeNode
key={flatList[virtualItem.index].node.value}
{...flatList[virtualItem.index]}
tree={tree}
expandOnClick
selectOnClick
tabIndex={virtualItem.index === 0 ? 0 : -1}
style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: virtualItem.size,
transform: `translateY(${virtualItem.start}px)`,
}}
/>
))}
</div>
</div>
);
}
useTree hook now supports checkStrictly option. When enabled, checking a parent node does not affect children and vice versa – each node's checked state is fully independent:
import { CaretDownIcon } from '@phosphor-icons/react';
import { Checkbox, Group, RenderTreeNodePayload, Tree, useTree } from '@mantine/core';
import { data } from './data';
const renderTreeNode = ({
node,
expanded,
hasChildren,
elementProps,
tree,
}: RenderTreeNodePayload) => {
const checked = tree.isNodeChecked(node.value);
return (
<Group gap="xs" {...elementProps}>
<Checkbox.Indicator
checked={checked}
onClick={() =>
checked
? tree.uncheckNode(node.value)
: tree.checkNode(node.value)
}
/>
<Group gap={5} onClick={() => tree.toggleExpanded(node.value)}>
<span>{node.label}</span>
{hasChildren && (
<CaretDownIcon
size={14}
style={{
transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)',
}}
/>
)}
</Group>
</Group>
);
};
function Demo() {
const tree = useTree({ checkStrictly: true });
return (
<Tree
data={data}
tree={tree}
levelOffset={23}
expandOnClick={false}
renderNode={renderTreeNode}
/>
);
}
Slider component now supports startPointValue prop that changes the origin of the filled bar. When set, the bar extends from the given value toward the current value – to the left for values below the start point and to the right for values above it:
import { Slider } from '@mantine/core';
function Demo() {
return (
<Slider
startPointValue={0}
min={-100}
max={100}
defaultValue={40}
marks={[
{ value: -100, label: '-100' },
{ value: -50, label: '-50' },
{ value: 0, label: '0' },
{ value: 50, label: '50' },
{ value: 100, label: '100' },
]}
/>
);
}
WeekView component now supports forceCurrentTimeIndicator prop. When set, the current time indicator is displayed on the same day of week even when viewing a different week:
import { WeekView } from '@mantine/schedule';
import { events } from './data';
function Demo() {
return (
<WeekView
date="2030-06-10"
events={events}
withCurrentTimeIndicator
forceCurrentTimeIndicator
/>
);
}
New MonthView demo shows how to use renderEvent to visually differentiate all-day and timed events. All-day events render as regular colored bars, while timed events display as a colored dot with the start time and title:
// Demo.tsx
import dayjs from 'dayjs';
import { Box, UnstyledButton } from '@mantine/core';
import { MonthView, ScheduleEventData } from '@mantine/schedule';
function isAllDayEvent(event: ScheduleEventData) {
const start = dayjs(event.start);
const end = dayjs(event.end);
return start.isSame(start.startOf('day')) && end.isSame(end.startOf('day'));
}
const events: ScheduleEventData[] = [/* ...events */];
function Demo() {
return (
<MonthView
date={new Date()}
events={events}
renderEvent={(event, props) => {
if (isAllDayEvent(event)) {
return <UnstyledButton {...props} />;
}
const { children, className, style, ...others } = props;
return (
<UnstyledButton
{...others}
style={{
...style,
display: 'flex',
alignItems: 'center',
gap: 4,
fontSize: 10,
whiteSpace: 'nowrap',
overflow: 'hidden',
pointerEvents: 'all',
cursor: 'pointer',
paddingInline: 2,
}}
>
<Box
component="span"
style={{
width: 8,
height: 8,
borderRadius: '50%',
backgroundColor: `var(--event-bg)`,
flexShrink: 0,
}}
/>
<span style={{ width: 28, flexShrink: 0 }}>{dayjs(event.start).format('h:mm')}</span>
<span style={{ overflow: 'hidden', textOverflow: 'ellipsis' }}>
{event.title}
</span>
</UnstyledButton>
);
}}
/>
);
}
- Tabs component now supports
keepMountedModeprop that controls how inactive tab panels are hidden whenkeepMountedistrue. SetkeepMountedMode="display-none"to usedisplay: nonestyles instead of the defaultActivitycomponent. - useClickOutside hook now supports
enabledparameter to dynamically enable/disable the listener. The hook also usesevent.composedPath()in bothrefandnodesbranches for consistent Shadow DOM support and correctly ignores clicks on detached DOM nodes in the single-ref mode. - useCounter hook now supports
stepoption to configure increment/decrement step size (default1). - useDebouncedCallback hook now supports
maxWaitoption to guarantee execution within a maximum time window during continuous calls, andisPending()method to check if a debounced call is waiting. - useDebouncedValue hook now returns a
flushmethod to immediately apply the pending debounced value. - useScrollIntoView hook now supports
onScrollCancelcallback that fires when the scroll animation is interrupted by the user, and returns ascrollingboolean to indicate whether a scroll animation is in progress.
v3.0.25-rc.2
- feat: 1. dynamic src for plugin for hls\hls.js\mp4; 2. destroy api; 3… by @beupgo in https://github.com/bytedance/xgplayer/pull/37
- Fuyuhao/feature flv refactor by @leonardoFu in https://github.com/bytedance/xgplayer/pull/38
- Zhangxin by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/39
- Zhangxin by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/41
- Zhangxin by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/46
- fix: fix destroy api by @beupgo in https://github.com/bytedance/xgplayer/pull/47
- Fuyuhao/fix distroy and src by @leonardoFu in https://github.com/bytedance/xgplayer/pull/53
- Zhangxin by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/54
- fix(xgplayer/player.js,proxy.js,control/progress.js): check and fix b… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/56
- Fuyuhao/feature logger by @leonardoFu in https://github.com/bytedance/xgplayer/pull/58
- Fuyuhao/feature logger by @leonardoFu in https://github.com/bytedance/xgplayer/pull/59
- feat(xgplayer/[package.json, control/pip.js, style/player.scss]): add… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/60
- feat(xgplayer/[control/textTrack.js, style/player.scss, proxy.js]): a… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/61
- Zhangxin control status by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/62
- fix(xgplayer-flv.js/flv/[core/transmuxer.js&&transmuxing-controller.j… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/64
- fix(xgplayer-hls.js/package.json): update hls.js@0.11.0 for hls.once(… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/65
- chore: check and build before v1.0.9 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/66
- v1.0.9 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/67
- Fuyuhao/fix flv playerror by @leonardoFu in https://github.com/bytedance/xgplayer/pull/68
- fix(xgplayer/[player.js, control/mobile.js && volume.js]): fix volume… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/69
- chore(CHANGELOG.md, lerna.json): check and build before publishing v1… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/70
- Zhangxin v1.1.0 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/72
- docs(CHANGELOG.md): correct changelog by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/73
- feat(xgplayer-music, xgplayer): lrc: i18n, sync; music: go forward or… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/75
- Add karma for testing by @FrankFang in https://github.com/bytedance/xgplayer/pull/79
- fix(flv.js/src/index): flv.js destroy and abort net request when player.emit('destroy') by @leonardoFu in https://github.com/bytedance/xgplayer/pull/80
- Zhangxin mp4a by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/82
- chore(xgplayer): test before publishing v1.1.1 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/83
- Zhangxin v111 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/84
- fix(xgplayer-music): fix xgplayer-music lyric inactive bug by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/85
- fix(xgplayer-mp4): read width and height info from tkhd box by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/87
- feat(examples): add xgplayer-m4a example by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/88
- Zhangxin error fresh by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/89
- fix(xgplayer): fix enter-tips error in safari; add autoplayMuted config by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/91
- feat: 简化模版机制 by @lwyj123 in https://github.com/bytedance/xgplayer/pull/90
- Zhangxin pgc by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/92
- fix flv abort while live by @leonardoFu in https://github.com/bytedance/xgplayer/pull/93
- Zhangxin v112 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/94
- Zhangxin fullscreen by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/95
- Zhangxin fullscreen by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/96
- fix(xgplayer-hls.js): play m3u8 with native video in mobile device by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/97
- Zhangxin fullscreen by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/98
- fix(xgplayer): add enter config support in mobile by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/99
- fix(xgplayer): emit error when have no url; fix progress problem in m… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/101
- Zhangxin newlogo by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/103
- Fuyuhao/fix flv live by @leonardoFu in https://github.com/bytedance/xgplayer/pull/104
- Zhangxin newlogo by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/105
- fix(xgplayer): fix ipad treated as PC problem; fix ios fullscreen beh… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/107
- fix(xgplayer): fix xgplayer-poster style by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/108
- feat(xgplayer): add preview local file function; publish v1.1.3 version by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/109
- feat(xgplayer-mp4): add mp4 cut function by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/111
- fix: babel-node: command not found by @xiaoyuhen in https://github.com/bytedance/xgplayer/pull/112
- Dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/114
- rotate plugins for xgplayer by @Maysjtu in https://github.com/bytedance/xgplayer/pull/116
- fix: Multiple assets emit to the same filename by @xiaoyuhen in https://github.com/bytedance/xgplayer/pull/115
- Dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/118
- fix($flv): fix flv seek to a time before currentTime by @leonardoFu in https://github.com/bytedance/xgplayer/pull/119
- Dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/120
- Dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/124
- fix playsinline by @TYRMars in https://github.com/bytedance/xgplayer/pull/125
- Rotate fix bug by @Maysjtu in https://github.com/bytedance/xgplayer/pull/127
- Dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/129
- Download plugin by @Maysjtu in https://github.com/bytedance/xgplayer/pull/133
- fix: fix relative url download by @Maysjtu in https://github.com/bytedance/xgplayer/pull/134
- Download plugin by @Maysjtu in https://github.com/bytedance/xgplayer/pull/135
- xgplayer-mp4 use karma for testing by @xiaoyuhen in https://github.com/bytedance/xgplayer/pull/128
- add test for findbox by @xiaoyuhen in https://github.com/bytedance/xgplayer/pull/136
- Add rotate config by @Maysjtu in https://github.com/bytedance/xgplayer/pull/137
- Fix fluid and queryselector id starts with digit by @Maysjtu in https://github.com/bytedance/xgplayer/pull/138
- fix: fix time when computed now < 0 by @Maysjtu in https://github.com/bytedance/xgplayer/pull/139
- fix: fix hls is-living judge by @Maysjtu in https://github.com/bytedance/xgplayer/pull/140
- Fix memory leak by @Maysjtu in https://github.com/bytedance/xgplayer/pull/141
- fix by @Maysjtu in https://github.com/bytedance/xgplayer/pull/142
- Fix video memory leak by @Maysjtu in https://github.com/bytedance/xgplayer/pull/144
- xgplayer核心代码 添加2个单元测试 by @ziwei3749 in https://github.com/bytedance/xgplayer/pull/148
- Dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/149
- add feature screenShot by @bethe-light in https://github.com/bytedance/xgplayer/pull/150
- feat(xgplayer, xgplayer-hls.js): change progress btn; fix xgplayer-hl… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/152
- add feature open pipApi by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/154
- Lizhen/feature pip open by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/155
- fix(xgplayer-hls.js): fix check browser error in onePlus by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/156
- fix feature cssfullscreen by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/157
- Lizhen/dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/163
- fix(xgplayer): test by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/164
- Lizhen/dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/173
- Lizhen/dev by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/176
- feat(xgplayer): add allowSeekAfterEnded config; fix controls displaye… by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/186
- feature dash segmentbase by @divawth in https://github.com/bytedance/xgplayer/pull/209
- add sei support by @yqjiang in https://github.com/bytedance/xgplayer/pull/220
- Fix first ts no video data error by @yqjiang in https://github.com/bytedance/xgplayer/pull/222
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/223
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/224
- 增加统计信息 by @yqjiang in https://github.com/bytedance/xgplayer/pull/226
- fix(xgplayer): fix play() pause() canPlayType() and currentSrc by @magic-akari in https://github.com/bytedance/xgplayer/pull/227
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/229
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/230
- Revert "Refactor live loaderbuffer" by @leonardoFu in https://github.com/bytedance/xgplayer/pull/231
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/232
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/233
- 整理文件夹 by @yqjiang in https://github.com/bytedance/xgplayer/pull/234
- Fuyuhao/feature audio compatibility by @leonardoFu in https://github.com/bytedance/xgplayer/pull/235
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/236
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/237
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/239
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/241
- fix: player多次error时会多次添加刷新按钮的点击事件监听 by @WindTraveler in https://github.com/bytedance/xgplayer/pull/238
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/245
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/248
- Refactor live loaderbuffer by @yqjiang in https://github.com/bytedance/xgplayer/pull/249
- Refactor live by @yqjiang in https://github.com/bytedance/xgplayer/pull/251
- Refactor live by @leonardoFu in https://github.com/bytedance/xgplayer/pull/252
- Refactor live by @yqjiang in https://github.com/bytedance/xgplayer/pull/255
- Refactor live by @leonardoFu in https://github.com/bytedance/xgplayer/pull/256
- Rebuild by @yqjiang in https://github.com/bytedance/xgplayer/pull/260
- Rebuild by @yqjiang in https://github.com/bytedance/xgplayer/pull/261
- Fix Golomb by @yqjiang in https://github.com/bytedance/xgplayer/pull/263
- feat: add momory-play module by @llftt in https://github.com/bytedance/xgplayer/pull/265
- fix discontinue by @yqjiang in https://github.com/bytedance/xgplayer/pull/264
- Rebuild by @AppleMonkey2019 in https://github.com/bytedance/xgplayer/pull/271
- fix: 🐛 ts modify by @divawth in https://github.com/bytedance/xgplayer/pull/272
- Rebuild by @hongqx in https://github.com/bytedance/xgplayer/pull/279
- [fix]修复addProgressDot传text无效的bug by @lison16 in https://github.com/bytedance/xgplayer/pull/303
- [feat]增加addProgressDots方法 by @lison16 in https://github.com/bytedance/xgplayer/pull/304
- [fix]修复切换视频源后error插件不消失的bug by @lison16 in https://github.com/bytedance/xgplayer/pull/305
- refactor: replace eval with parseInt by @pd4d10 in https://github.com/bytedance/xgplayer/pull/341
- Update README.md by @tomByrer in https://github.com/bytedance/xgplayer/pull/342
- 下一集功能 by @zoukanghua in https://github.com/bytedance/xgplayer/pull/368
- fix: 进度条控件中的开闭标签不一致 by @WindTraveler in https://github.com/bytedance/xgplayer/pull/382
- Xgplayer 2 merge by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/443
- Update xgplayer-2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/442
- fix: cleanup all listeners when destroy by @meowtec in https://github.com/bytedance/xgplayer/pull/453
- Xgplayer 2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/454
- Xgplayer 2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/486
- Xgplayer 2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/508
- fix: pointer this by @doctoroyy in https://github.com/bytedance/xgplayer/pull/536
- Xgplayer 2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/553
- Xgplayer 2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/602
- Xgplayer 2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/655
- Xgplayer 2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/664
- fix: peerDep field and version by @m1heng in https://github.com/bytedance/xgplayer/pull/660
- Xgplayer 2 by @zhangxin92 in https://github.com/bytedance/xgplayer/pull/674
- docs: update use mp4 demo description by @mowatermelon in https://github.com/bytedance/xgplayer/pull/681
- docs: update bug template version description by @mowatermelon in https://github.com/bytedance/xgplayer/pull/682
- Seeking by @yiwen03 in https://github.com/bytedance/xgplayer/pull/718
- fix: hls url parsing #723 by @oyuyue in https://github.com/bytedance/xgplayer/pull/727
- fix: issue(#760) by @gemxx in https://github.com/bytedance/xgplayer/pull/764
- Let destroy api's behavior tend to be synchronized by @gemxx in https://github.com/bytedance/xgplayer/pull/766
- feat(xgplayer-hls.js): dynamic update hls url by @gemxx in https://github.com/bytedance/xgplayer/pull/789
- feat(xgplayer-transmuxer): support custom descrypt handler to replace… by @llftt in https://github.com/bytedance/xgplayer/pull/900
- fix(xgplayer): fix fpsDetect by @llftt in https://github.com/bytedance/xgplayer/pull/908
- Fix1/texttrack by @hongqx in https://github.com/bytedance/xgplayer/pull/909
- release: xgplayer-subtitles@1.1.1 by @hongqx in https://github.com/bytedance/xgplayer/pull/910
- Feat/subtitle by @hongqx in https://github.com/bytedance/xgplayer/pull/911
- Release xgplayer@3.0.2 by @hongqx in https://github.com/bytedance/xgplayer/pull/912
- Feat/hls destroy decryptor by @gemxx in https://github.com/bytedance/xgplayer/pull/918
- 加入自动化发版脚本 by @leonardoFu in https://github.com/bytedance/xgplayer/pull/919
- update xgplayer-transmuxer and loader package.json by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/922
- 调整原本安装在bnpm的包的registry by @leonardoFu in https://github.com/bytedance/xgplayer/pull/924
- hls & flv fix by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/923
- 完善发布脚本,可以更新每个包的peerDeps和deps by @leonardoFu in https://github.com/bytedance/xgplayer/pull/925
- new version published: v3.0.3-alpha.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/926
- fix: rename Fullscreen to Icon by @iChengbo in https://github.com/bytedance/xgplayer/pull/907
- fix: 调用 switchPIP 报错 e.stopPropagation not a function by @tthzwq in https://github.com/bytedance/xgplayer/pull/902
- Feat/progress hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/933
- Feat/listicon by @hongqx in https://github.com/bytedance/xgplayer/pull/930
- Fix texttrack by @hongqx in https://github.com/bytedance/xgplayer/pull/934
- fix(xgplayer): 修复起播之前seek ios上会事件触发异常问题 by @hongqx in https://github.com/bytedance/xgplayer/pull/928
- new version published: v3.0.3-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/927
- fix: (workflow) version not update on published pkg by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/935
- fix: (workflow) pushlish.yml invalid by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/936
- fix(xgplayer): 修复loadeddata之后isSeeking状态异常问题 by @hongqx in https://github.com/bytedance/xgplayer/pull/944
- Fix seek1 by @hongqx in https://github.com/bytedance/xgplayer/pull/945
- Feature/hls flv add options by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/946
- fix: (xgplayer-flv) play error with only script tag received first fetch chunk by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/949
- modify createResponse args name by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/948
- new version published: v3.0.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/947
- Fix/flv.js by @gemxx in https://github.com/bytedance/xgplayer/pull/957
- mse changeType func fix by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/958
- fix: fixed progressDot position error bug by @Luokavin in https://github.com/bytedance/xgplayer/pull/960
- feat(xgplayer): 控制栏预览删除对time节点的定位,relative定位,只对容器节点作位移 by @hongqx in https://github.com/bytedance/xgplayer/pull/962
- new version published: v3.0.5-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/963
- fix(xgplayer): 修复player不存在调用异常 by @hongqx in https://github.com/bytedance/xgplayer/pull/965
- feat(xgplayer): report fps stuck by @llftt in https://github.com/bytedance/xgplayer/pull/977
- fix: 🐛 (player) 修复closeVideoClick=true时,双击事件无效问题 (fixed #970) by @gemxx in https://github.com/bytedance/xgplayer/pull/972
- fix: 修复倍速切换插件一直显示滚动条 bug by @Luokavin in https://github.com/bytedance/xgplayer/pull/967
- docs: ✏️ update changelogs by @gemxx in https://github.com/bytedance/xgplayer/pull/978
- Fix hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/968
- feat(xgplayer): update changelog by @hongqx in https://github.com/bytedance/xgplayer/pull/979
- add 404 and waittimeout error by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/987
- new version published: v3.0.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/980
- fix MSE set mediaSource.duration by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1007
- new version published: v3.0.6-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/995
- new version published: v3.0.6-alpha.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1008
- fix append data mse readystate open and ended by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1009
- new version published: v3.0.6-alpha.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1010
- Feature/fix hls by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1014
- new version published: v3.0.6-alpha.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1013
- Feat/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1017
- fix(xgplayer): switchUrl API promise在error的时候不返回问题解决 by @hongqx in https://github.com/bytedance/xgplayer/pull/1016
- Feature/hls events by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1021
- new version published: v3.0.6 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1023
- new version published: v3.0.7-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1030
- Feature/fix hls by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1031
- Feat/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1029
- fix(xgplayer): start插件修复play/pause切换过快导致的动效异常问题 by @hongqx in https://github.com/bytedance/xgplayer/pull/1037
- new version published: v3.0.7-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1032
- fix: (xgplayer-hls) by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1038
- Feat/optionicon by @hongqx in https://github.com/bytedance/xgplayer/pull/1039
- new version published: v3.0.7 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1040
- fix: 🐛 (xgplayer) 修复roate旋转容器时,一直旋转的问题 fixed #1045 by @gemxx in https://github.com/bytedance/xgplayer/pull/1047
- fix: 🐛 (xgplayer-dash) 修复Dash开播失败问题 fixed #1002 by @gemxx in https://github.com/bytedance/xgplayer/pull/1049
- fix logcache config by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1050
- Feature/hls manifest by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1051
- new version published: v3.0.8-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1052
- fix logcache config by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1053
- new version published: v3.0.8-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1055
- fix(xgplayer): download链接获取兼容blob by @hongqx in https://github.com/bytedance/xgplayer/pull/1064
- testSpeed support other type test by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1068
- new version published: v3.0.8-alpha.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1065
- fix speedListCache null error by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1070
- new version published: v3.0.8-alpha.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1069
- fix: (xgplayer-hls) 起播seek存在并行重复下载分片case by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1073
- chore(xgplayer): add changelog by @hongqx in https://github.com/bytedance/xgplayer/pull/1074
- new version published: v3.0.8 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1075
- fix: current time shifting when updating by @ngolin in https://github.com/bytedance/xgplayer/pull/1085
- Feat/progress by @hongqx in https://github.com/bytedance/xgplayer/pull/1079
- fix: 没有position或者rotate角度设置的时候不做video的style设置 by @hongqx in https://github.com/bytedance/xgplayer/pull/1083
- unbindMedia func fix promise.resolve call by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1082
- Feat/keyboard by @hongqx in https://github.com/bytedance/xgplayer/pull/1086
- new version published: v3.0.9 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1088
- Feature/hls live fix by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1099
- new version published: v3.0.9-alpha.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1100
- add changelog of 3.0.9 by @hongqx in https://github.com/bytedance/xgplayer/pull/1090
- fix: 🐛 修复移动浏览器下muted未显示设置在dom内,会导致非静音切换频地址后开播失败的问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1106
- fix: (xgplayer-texttrack) 修复updateSubtitles不能更新字幕 by @WangsYi in https://github.com/bytedance/xgplayer/pull/1104
- fix(xgplayer): 修复timeupdate中获取cumulateTime计算异常问题 by @hongqx in https://github.com/bytedance/xgplayer/pull/1117
- feat(xgplayer): 添加timeSegments配置,支持分段时长合并播放能力 by @hongqx in https://github.com/bytedance/xgplayer/pull/1116
- Fix/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1103
- feat(xgplayer): update changelog by @hongqx in https://github.com/bytedance/xgplayer/pull/1118
- new version published: v3.0.9-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1119
- llhls + ts 支持 by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1120
- feat: 删除内网地址 by @hongqx in https://github.com/bytedance/xgplayer/pull/1121
- Fix/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1133
- new version published: v3.0.9-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1134
- Feature/fix hls by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1138
- new version published: v3.0.10-alpha.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1139
- feat(xgplayer): 增加preProcessUrl配置用于url的前置处理 by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1145
- new version published: v3.0.10-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1146
- fix: (xgplayer-flv) preProcessUrl work from core.loadstart event by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1147
- new version published: v3.0.10-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1148
- Feat/subtitle by @hongqx in https://github.com/bytedance/xgplayer/pull/1149
- new version published: v3.0.10-alpha.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1150
- fix(xgplayer): retry 增加url预处理 by @hongqx in https://github.com/bytedance/xgplayer/pull/1151
- Feat/subtitle by @hongqx in https://github.com/bytedance/xgplayer/pull/1152
- Feat/subtitle by @hongqx in https://github.com/bytedance/xgplayer/pull/1154
- new version published: v3.0.10-alpha.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1155
- fix: 🐛 (xgplayer) 修复全屏和旋转插件对于镜像插件的影响 by @gemxx in https://github.com/bytedance/xgplayer/pull/1161
- new version published: v3.0.10-alpha.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1162
- fix(xgplayer-music):fix typos by @lqBeatrice in https://github.com/bytedance/xgplayer/pull/1164
- feat: (xgplayer-hls) add PROGRAM-DATE-TIME tag parse by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1169
- fix(subtitles): 字幕逐字渲染添加时间矫正 by @hongqx in https://github.com/bytedance/xgplayer/pull/1174
- new version published: v3.0.10-alpha.6 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1171
- Fix/subtitle by @hongqx in https://github.com/bytedance/xgplayer/pull/1175
- new version published: v3.0.10-alpha.8 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1176
- Feat/hls tsc by @llftt in https://github.com/bytedance/xgplayer/pull/1187
- update changelog by @hongqx in https://github.com/bytedance/xgplayer/pull/1189
- new version published: v3.0.10 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1190
- Fix/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1141
- new version published: v3.0.11-alpha.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1195
- flv 断流、弱网增加重试 by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1196
- new version published: v3.0.11-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1197
- Fix/lsy by @shanyutongxue in https://github.com/bytedance/xgplayer/pull/1203
- Fix/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1202
- Fix/issue by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1207
- fix(xgplayer): 全局多实例快捷键同时生效异常问题修复 by @hongqx in https://github.com/bytedance/xgplayer/pull/1204
- Fix/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1208
- feat(xgplayer): 删除yarn.loack中bnpm引用 by @hongqx in https://github.com/bytedance/xgplayer/pull/1209
- Fix/yarnlock by @hongqx in https://github.com/bytedance/xgplayer/pull/1211
- new version published: v3.0.11-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1210
- Fix/mp4 by @hongqx in https://github.com/bytedance/xgplayer/pull/1212
- Fix/mp4 by @hongqx in https://github.com/bytedance/xgplayer/pull/1213
- new version published: v3.0.11-alpha.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1214
- feat(xgplayer-hls):新增参数支持单独设置m3u8文件请求超时时间 by @llftt in https://github.com/bytedance/xgplayer/pull/1215
- new version published: v3.0.11-alpha.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1216
- feat: 调整mpeg-ts fixVideo中dts/pts补偿 by @xinghui-lc in https://github.com/bytedance/xgplayer/pull/1222
- Fix/mp4 by @hongqx in https://github.com/bytedance/xgplayer/pull/1218
- Fix/mp4 by @hongqx in https://github.com/bytedance/xgplayer/pull/1229
- new version published: v3.0.11-alpha.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1223
- new version published: v3.0.11-alpha.7 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1231
- fix(xgplayer): progresspreview插件transformTime 不生效问题修复 by @hongqx in https://github.com/bytedance/xgplayer/pull/1233
- new version published: v3.0.11-alpha.8 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1234
- Fix hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1240
- fix(xgplayer): reset progress btn position when playnext by @legolaserea in https://github.com/bytedance/xgplayer/pull/1243
- new version published: v3.0.11-alpha.9 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1241
- fix(xgplayer): 1. fix progress dot position 2. add mediaSrc attribute… by @llftt in https://github.com/bytedance/xgplayer/pull/1244
- fix(xgplayer): 修复android端播放hls起播时长设置异常问题 by @hongqx in https://github.com/bytedance/xgplayer/pull/1245
- new version published: v3.0.11-alpha.10 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1246
- Fix/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1249
- Remove RBSP trailing bits when parsing SEI by @l0rem1psum in https://github.com/bytedance/xgplayer/pull/1247
- new version published: v3.0.11-alpha.11 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1250
- update changelog by @hongqx in https://github.com/bytedance/xgplayer/pull/1259
- new version published: v3.0.11 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1260
- Feat/heatmap by @hongqx in https://github.com/bytedance/xgplayer/pull/1262
- new version published: v3.0.12-alpha.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1263
- Feat/heatmap by @hongqx in https://github.com/bytedance/xgplayer/pull/1265
- new version published: v3.0.12-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1266
- feat: 截图增加同v2版本saveImg字段,控制截图下载保存 by @ehangwork in https://github.com/bytedance/xgplayer/pull/1268
- feat(xgplayer): index增加heatmap导出 by @hongqx in https://github.com/bytedance/xgplayer/pull/1269
- new version published: v3.0.12-alpha.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1270
- feat(xgplayer): heatmap根据时长补充数据 by @hongqx in https://github.com/bytedance/xgplayer/pull/1272
- feat: 🎸 (xgplayer) 支持文档画中画 Document Picture-in-Picture by @gemxx in https://github.com/bytedance/xgplayer/pull/1261
- new version published: v3.0.12-alpha.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1273
- fix(xgplayer): 修复拖拽进度条到播放器外层锁定状态未解除问题 by @hongqx in https://github.com/bytedance/xgplayer/pull/1281
- fix(xgplayer):类型声明修正 by @hongqx in https://github.com/bytedance/xgplayer/pull/1290
- new version published: v3.0.12-alpha.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1282
- new version published: v3.0.12-alpha.6 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1291
- feat: copy 旧xgplayer中InstManager by @llftt in https://github.com/bytedance/xgplayer/pull/1292
- fix(xgplayer):类型声明修正 by @hongqx in https://github.com/bytedance/xgplayer/pull/1293
- new version published: v3.0.12-alpha.7 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1295
- fix: (xgplayer-hls) sps parse case page crash by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1304
- fix(xgplayer): 修复默认rotate异常问题 by @hongqx in https://github.com/bytedance/xgplayer/pull/1283
- new version published: v3.0.12 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1305
- Feat/upgrade hlsjs by @gemxx in https://github.com/bytedance/xgplayer/pull/1313
- feat(i18n): 提供更多语言的国际化文案资源 by @LockingReal in https://github.com/bytedance/xgplayer/pull/1308
- new version published: v3.0.13 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1314
- 修复背景图的填充模式contain by @legolaserea in https://github.com/bytedance/xgplayer/pull/1317
- Fix/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1319
- new version published: v3.0.14-alpha.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1320
- feat(xgplayer): 快捷键在当前dom触发增加阻止冒泡操作 by @hongqx in https://github.com/bytedance/xgplayer/pull/1321
- new version published: v3.0.14-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1322
- feat: (xgplayer-flv) support mms on ios v17.1+ by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1329
- new version published: v3.0.14-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1331
- Feat/hls support keysystem by @gemxx in https://github.com/bytedance/xgplayer/pull/1333
- fix(xgplayer): fix type of siniffer by @hongqx in https://github.com/bytedance/xgplayer/pull/1328
- fix(xgplayer-hls): sn 为 0时会错误取到-1 by @chenglu4343 in https://github.com/bytedance/xgplayer/pull/1332
- Feat/fullscreen with SceenOrientation by @gemxx in https://github.com/bytedance/xgplayer/pull/1325
- new version published: v3.0.14 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1335
- fix: (xgplayer-hls) detect supported on ios use MMS by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1340
- Fix/hevc nalu type by @gemxx in https://github.com/bytedance/xgplayer/pull/1341
- new version published: v3.0.15-alpha.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1342
- feat(xgplayer): miniprogress增加独立更新进度能力 by @hongqx in https://github.com/bytedance/xgplayer/pull/1344
- new version published: v3.0.15-alpha.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1347
- Support MMS in HLS by @gemxx in https://github.com/bytedance/xgplayer/pull/1350
- new version published: v3.0.15-alpha.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1351
- feat(xgplayer): mobile插件增加配色 by @hongqx in https://github.com/bytedance/xgplayer/pull/1358
- new version published: v3.0.15-alpha.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1359
- new version published: v3.0.15 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1362
- fix(xgplayer): 修复replay事件重复触发问题 by @hongqx in https://github.com/bytedance/xgplayer/pull/1363
- new version published: v3.0.16 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1365
- fix: 🐛 (xgplayer-hls) 修复hls最后一个segment被过滤后,播放到结尾卡住问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1367
- Feat/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1368
- chore:固定publish.yml中zx版本 by @hongqx in https://github.com/bytedance/xgplayer/pull/1370
- Fix/publish by @hongqx in https://github.com/bytedance/xgplayer/pull/1371
- new version published: v3.0.17-alpha.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1372
- refactor: 💡 丰富MSE模式下的日志 by @gemxx in https://github.com/bytedance/xgplayer/pull/1380
- new version published: v3.0.17-rc.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1381
- Feature/firstframe optimize by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1391
- new version published: v3.0.17-rc.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1392
- fix: 🐛 (xgplayer-hls) 强化MSE endOfStream触发的时机,防止卡在最后不发end事件问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1393
- new version published: v3.0.17-rc.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1394
- align with hvcC structure adding raw binary data to box info of avcC by @thefrankhu in https://github.com/bytedance/xgplayer/pull/1397
- fix(xgplayer-hls): hls plugin switchURL api add Promise return by @legolaserea in https://github.com/bytedance/xgplayer/pull/1403
- feat(xgplayer): checkBuffer add startDiff options by @legolaserea in https://github.com/bytedance/xgplayer/pull/1406
- fix: 🐛 (xgplayer-hls) 修复preferMMS未开启时,集成hls插件播放失败的问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1409
- new version published: v3.0.17-rc.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1407
- fix: (xgplayer-flv) autoplay: false 不断流 by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1411
- new version published: v3.0.17-rc.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1413
- fix: (xgplayer-flv) safari firstframe stall by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1419
- fix: (xgplayer-flv) unit test by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1421
- new version published: v3.0.17 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1422
- Feat/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1379
- fix: 🐛 (xgplayer) 修复截图在部分机型失败的问题 #1396 by @gemxx in https://github.com/bytedance/xgplayer/pull/1433
- Refact/mse changetype by @gemxx in https://github.com/bytedance/xgplayer/pull/1437
- Fix/start time by @hongqx in https://github.com/bytedance/xgplayer/pull/1434
- Feat/hqx by @hongqx in https://github.com/bytedance/xgplayer/pull/1435
- new version published: v3.0.18-rc.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1441
- Refact/drm by @gemxx in https://github.com/bytedance/xgplayer/pull/1445
- new version published: v3.0.18-rc.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1446
- feat(xgplayer-straming-shared): add op callback by @llftt in https://github.com/bytedance/xgplayer/pull/1447
- fix: 🐛 (xgplayer) 修复弹幕在自定义el元素内容时,文字样式折行的问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1448
- new version published: v3.0.18-rc.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1449
- docs: ✏️ update changlog by @gemxx in https://github.com/bytedance/xgplayer/pull/1450
- new version published: v3.0.18 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1451
- Fix/danmu without controls by @gemxx in https://github.com/bytedance/xgplayer/pull/1452
- Release xgplayer subtitles@3.0.19 alpha.0 by @hongqx in https://github.com/bytedance/xgplayer/pull/1456
- feat: (xgplayer-flv) update download speed evaluate strategy by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1457
- new version published: v3.0.19-rc.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1458
- feat(hls):增加Loader等对象导出 by @llftt in https://github.com/bytedance/xgplayer/pull/1463
- new version published: v3.0.19-rc.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1464
- fix: 🐛 (xgplayer-hls) 修复重播时,视频播放到结尾一直loading的问题(重播时末尾buffer已下载) by @gemxx in https://github.com/bytedance/xgplayer/pull/1468
- Fix/hls parser by @xiyuyizhi in https://github.com/bytedance/xgplayer/pull/1469
- new version published: v3.0.19-rc.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1471
- feat(xgplayer-hls xgplayer-transmuxer): HLS 音视频LargeGAP优化处理 by @llftt in https://github.com/bytedance/xgplayer/pull/1482
- new version published: v3.0.19-rc.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1483
- fix: 🐛 (xgplayer-hls)修复hls最后一个切片不渲染,并且播放到最后一直loading的问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1492
- new version published: v3.0.19-rc.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1493
- fix(xgplayer-hls):修复HLS点播场景空列表时未触发报错问题 by @llftt in https://github.com/bytedance/xgplayer/pull/1495
- fix(xgplayer): android hls origin video play's startTime by @legolaserea in https://github.com/bytedance/xgplayer/pull/1500
- new version published: v3.0.19-rc.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1496
- new version published: v3.0.19-rc.6 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1501
- feat(xgplayer-transmuxer): MP4格式支持解析matrix、rotation by @cyanql in https://github.com/bytedance/xgplayer/pull/1491
- new version published: v3.0.19-rc.7 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1503
- new version published: v3.0.19-rc.8 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1505
- chore: remove duplicate codec item for MP4 support check by @Mayandev in https://github.com/bytedance/xgplayer/pull/1517
- fix(xgplayer): mobile 插件的darkness属性生效 by @legolaserea in https://github.com/bytedance/xgplayer/pull/1518
- new version published: v3.0.19-rc.9 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1519
- feat(xgplayer-mp4、xgplayer-transmuxer): 支持fmp4 + av1解析播放、seek等能力 by @cyanql in https://github.com/bytedance/xgplayer/pull/1504
- fix: disconnetcTime use buffer time instead buffer edge by @wudechang in https://github.com/bytedance/xgplayer/pull/1523
- fix exitFullscreen el set by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1527
- new version published: v3.0.19 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1534
- feat: add flv transfer cost by @chenyongjinAtBD in https://github.com/bytedance/xgplayer/pull/1540
- fix: 多个播放器,只显示一个rotate icon by @wudechang in https://github.com/bytedance/xgplayer/pull/1541
- new version published: v3.0.20-rc.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1542
- fix(xgplayer): 修复mobile插件部分手机场景功能失效问题修复 by @llftt in https://github.com/bytedance/xgplayer/pull/1546
- new version published: v3.0.20-rc.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1550
- Fix/abr switch by @chenyongjinAtBD in https://github.com/bytedance/xgplayer/pull/1557
- Feat/xgplayer advertizing by @gemxx in https://github.com/bytedance/xgplayer/pull/1552
- new version published: v3.0.20-rc.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1560
- Feat/hls abr by @gemxx in https://github.com/bytedance/xgplayer/pull/1559
- new version published: v3.0.20-rc.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1562
- Feat/flv support g711 & opus by @gemxx in https://github.com/bytedance/xgplayer/pull/1565
- new version published: v3.0.20-rc.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1566
- fix: lower llhls m3u8 interval by @chenyongjinAtBD in https://github.com/bytedance/xgplayer/pull/1568
- new version published: v3.0.20-rc.6 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1569
- fix(xgplayer): pip available by @legolaserea in https://github.com/bytedance/xgplayer/pull/1570
- new version published: v3.0.20-rc.7 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1571
- fix: 🐛 (xgplayer) playbackRate 类型不应为数字,并支持布尔值 #1573 by @gemxx in https://github.com/bytedance/xgplayer/pull/1575
- new version published: v3.0.20-rc.8 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1576
- new version published: v3.0.20 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1577
- new version published: v3.0.21-rc.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1580
- fix: 🐛 (xgplayer) 修复全屏hook,执行报错的问题 close #1579 by @gemxx in https://github.com/bytedance/xgplayer/pull/1581
- new version published: v3.0.21-rc.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1582
- Fix/llhls loading by @wudechang in https://github.com/bytedance/xgplayer/pull/1596
- new version published: v3.0.21-rc.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1597
- Fix mp4 MMS support 支持苹果的MMS by @zzzhr1990 in https://github.com/bytedance/xgplayer/pull/1586
- fix: mp3音频没声音 by @wudechang in https://github.com/bytedance/xgplayer/pull/1599
- new version published: v3.0.21-rc.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1600
- fix: 🐛 (xgplayer-transmuxer) 修复flv直播推流启动G711数据异常的情况 by @gemxx in https://github.com/bytedance/xgplayer/pull/1622
- new version published: v3.0.21-rc.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1623
- fix player destroy control plugins memeory leak by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1628
- new version published: v3.0.21-rc.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1629
- fix: 🐛 (xgplayer) 修复播放器seeked时,播放器未启动播放而弹幕自动播放问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1632
- new version published: v3.0.21-rc.7 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1643
- fix: 调整插件内软解判断 by @Road-sun in https://github.com/bytedance/xgplayer/pull/1603
- feat: 🎸 (xgplayer-hlsjs) 播放器配置适配hls.js fixed #1664 by @gemxx in https://github.com/bytedance/xgplayer/pull/1666
- fix: hls播放mp2音画不同步 by @wudechang in https://github.com/bytedance/xgplayer/pull/1679
- new version published: v3.0.21-rc.8 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1680
- Fix/hls-ts nalu split by @gemxx in https://github.com/bytedance/xgplayer/pull/1675
- fix: (xgplayer) 修复打包后 es / lang 文件夹多语言文件缺失的问题 by @vaebe in https://github.com/bytedance/xgplayer/pull/1656
- fix: 🐛 修复Vivo playsinline失败问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1678
- Fix/ios should always support softdecode by @gemxx in https://github.com/bytedance/xgplayer/pull/1667
- new version published: v3.0.21-rc.9 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1682
- fix: 🐛 修复rotate插件,在video设置maxWidth时,样式计算错误的问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1686
- fix error by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1700
- 修改github by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1705
- fix workFolw by @jiuyuetianjiuyuetian in https://github.com/bytedance/xgplayer/pull/1706
- Update publish.yml for default permission change by @WillemJiang in https://github.com/bytedance/xgplayer/pull/1707
- new version published: v3.0.21-rc.10 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1687
- new version published: v3.0.21-rc.19 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1708
- feat: support standalone video by @chenyongjinAtBD in https://github.com/bytedance/xgplayer/pull/1704
- fix: remainMediaAfterDestroy ts by @chenyongjinAtBD in https://github.com/bytedance/xgplayer/pull/1710
- new version published: v3.0.21-rc.20 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1709
- new version published: v3.0.21-rc.21 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1711
- fix: 调整chrome下acc默认objectType by @Road-sun in https://github.com/bytedance/xgplayer/pull/1712
- new version published: v3.0.21-rc.22 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1713
- fix: 🐛 allowedStreamTrackChange cause playnext failure by @gemxx in https://github.com/bytedance/xgplayer/pull/1715
- fix: (xgplayer-mp4) 修复了当AV1视频流没有colr(颜色信息)box时出现的undefined错误,该错误会影响bl… by @shiyinweilai in https://github.com/bytedance/xgplayer/pull/1727
- new version published: v3.0.21 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1716
- feat: add update function for miniscreen by @indolentface in https://github.com/bytedance/xgplayer/pull/1695
- new version published: v3.0.22-rc.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1729
- fix(xgplayer): fix percent NaN and fix to currentTime percent by @llftt in https://github.com/bytedance/xgplayer/pull/1731
- new version published: v3.0.22-rc.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1732
- fix: fix the issue of the undefined self variable in the getData method. by @SimonAllen0901 in https://github.com/bytedance/xgplayer/pull/1733
- fix(lang): fix typo in zh-hk by @SimonAllen0901 in https://github.com/bytedance/xgplayer/pull/1734
- fix: 🐛 progress bar mouseup event is not fired, due to preview by @gemxx in https://github.com/bytedance/xgplayer/pull/1735
- 新增flv传入预拉流res by @wudechang in https://github.com/bytedance/xgplayer/pull/1737
- new version published: v3.0.22-rc.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1736
- fix: 🐛 (ads) always autoplay for LG & Samsung TV by @gemxx in https://github.com/bytedance/xgplayer/pull/1743
- new version published: v3.0.22-rc.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1744
- fix: 🐛 [ads] fix ads plugin umd exports by @gemxx in https://github.com/bytedance/xgplayer/pull/1748
- new version published: v3.0.22-rc.8 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1749
- new version published: v3.0.22-rc.9 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1750
- Fix/ads for tv by @gemxx in https://github.com/bytedance/xgplayer/pull/1753
- new version published: v3.0.22-rc.10 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1754
- Feat onlylastgop by @wudechang in https://github.com/bytedance/xgplayer/pull/1756
- new version published: v3.0.22-rc.11 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1757
- fix: firstMaxChunkSize可动态变化 by @wudechang in https://github.com/bytedance/xgplayer/pull/1758
- new version published: v3.0.22-rc.12 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1759
- fix(hls): fix sample duration less zero bug by @llftt in https://github.com/bytedance/xgplayer/pull/1762
- new version published: v3.0.22-rc.13 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1763
- new version published: v3.0.22 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1765
- fix: null is not an object (evaluating 'this.root.getBoundingClientRect') by @jeddygong in https://github.com/bytedance/xgplayer/pull/1767
- new version published: v3.0.23-rc.0 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1770
- 修复css旋转全屏尺寸计算错误 & ad插件timeIcon显隐问题 by @xiong-001 in https://github.com/bytedance/xgplayer/pull/1776
- new version published: v3.0.23-rc.1 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1778
- fix: 🐛 (xgplayer) usePluginHooks not use arguments, fixed#1773 by @gemxx in https://github.com/bytedance/xgplayer/pull/1779
- new version published: v3.0.23-rc.2 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1781
- Feat/xgplayer playsessionid by @gemxx in https://github.com/bytedance/xgplayer/pull/1796
- new version published: v3.0.23-rc.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1797
- feat: MSE判断兼容性的静态方法支持是否采用mms透传 by @xinghui-lc in https://github.com/bytedance/xgplayer/pull/1801
- fix: assign hasVideo based on video track by @SimonAllen0901 in https://github.com/bytedance/xgplayer/pull/1723
- fix(xgplayer): keys api reset maybe no work by @meet-student in https://github.com/bytedance/xgplayer/pull/1802
- fix: 🐛 (flv) 修复flv视频宽高异常问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1804
- new version published: v3.0.23-rc.4 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1805
- fix: 修复因返回值问题,导致 “限制用户向前seek” 示例无效的问题 by @Tiany000 in https://github.com/bytedance/xgplayer/pull/1789
- feat: add resume content callback by @chenyongjinAtBD in https://github.com/bytedance/xgplayer/pull/1806
- new version published: v3.0.23-rc.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1807
- feat: 更改isSupported默认preferMMS为true (FLV默认支持IOS) by @xinghui-lc in https://github.com/bytedance/xgplayer/pull/1808
- new version published: v3.0.23-rc.6 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1809
- mp4 plugin fix: check if video/audio track has segments before accessing by @Eson-Jia in https://github.com/bytedance/xgplayer/pull/1812
- new version published: v3.0.23 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1816
- fix: 🐛 (mp4) retrieve audio sample rate from esds #1830 by @gemxx in https://github.com/bytedance/xgplayer/pull/1831
- feat: 🎸 (xgplayer) download support authentication by @gemxx in https://github.com/bytedance/xgplayer/pull/1834
- Fix: typo in options property for appendBuffer by @fengong in https://github.com/bytedance/xgplayer/pull/1839
- feat: integrate Biome for code formatting and linting by @brknl28 in https://github.com/bytedance/xgplayer/pull/1814
- fix: 🐛 (xgplayer) ensure poster is hidden when play catched by @gemxx in https://github.com/bytedance/xgplayer/pull/1842
- Fix/issues by @gemxx in https://github.com/bytedance/xgplayer/pull/1843
- chore: 🤖 update danmu.js dependency version to 1.1.14 by @gemxx in https://github.com/bytedance/xgplayer/pull/1850
- new version published: v3.0.24-rc.3 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1851
- chore: 🤖 update danmu.js dependency version to 1.2.0-rc.8 by @gemxx in https://github.com/bytedance/xgplayer/pull/1852
- new version published: v3.0.24-rc.5 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1853
- Refact/changeset by @gemxx in https://github.com/bytedance/xgplayer/pull/1863
- new version published: v3.0.24-rc.6 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1866
- fix(hls):修复空音频帧导致chrome高版本爆音问题 by @llftt in https://github.com/bytedance/xgplayer/pull/1878
- fix(hlsjs):update hlsjs to latest version, fix audio slience frame ab… by @llftt in https://github.com/bytedance/xgplayer/pull/1879
- fix: 🐛 (hls) 修复结尾ts文件一直不加载,导致播放卡住问题 by @gemxx in https://github.com/bytedance/xgplayer/pull/1876
- new version published: v3.0.24-rc.7 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1881
- fix: add catch when exitScreen by @llftt in https://github.com/bytedance/xgplayer/pull/1892
- chore(release): version v3.0.24-rc.19 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1893
- 支持原生video的封面图 by @xiong-001 in https://github.com/bytedance/xgplayer/pull/1891
- fix: 🐛 Sniffer兼容HarmonyOS by @gemxx in https://github.com/bytedance/xgplayer/pull/1894
- chore(release): version v3.0.24-rc.20 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1895
- chore(release): version v3.0.24 by @github-actions[bot] in https://github.com/bytedance/xgplayer/pull/1896
- fix: 🐛 (hls) 修复时间轴偏移导致启播位置未从0开始、duration较大问题 fixed #1897 by @gemxx in https://github.com/bytedance/xgplayer/pull/1898
- fix: correct typos and prevent undefined return value by @hobostay in https://github.com/bytedance/xgplayer/pull/1899
- @beupgo made their first contribution in https://github.com/bytedance/xgplayer/pull/37
- @FrankFang made their first contribution in https://github.com/bytedance/xgplayer/pull/79
- @xiaoyuhen made their first contribution in https://github.com/bytedance/xgplayer/pull/112
- @TYRMars made their first contribution in https://github.com/bytedance/xgplayer/pull/125
- @ziwei3749 made their first contribution in https://github.com/bytedance/xgplayer/pull/148
- @bethe-light made their first contribution in https://github.com/bytedance/xgplayer/pull/150
- @divawth made their first contribution in https://github.com/bytedance/xgplayer/pull/209
- @magic-akari made their first contribution in https://github.com/bytedance/xgplayer/pull/227
- @WindTraveler made their first contribution in https://github.com/bytedance/xgplayer/pull/238
- @AppleMonkey2019 made their first contribution in https://github.com/bytedance/xgplayer/pull/271
- @lison16 made their first contribution in https://github.com/bytedance/xgplayer/pull/303
- @pd4d10 made their first contribution in https://github.com/bytedance/xgplayer/pull/341
- @tomByrer made their first contribution in https://github.com/bytedance/xgplayer/pull/342
- @zoukanghua made their first contribution in https://github.com/bytedance/xgplayer/pull/368
- @meowtec made their first contribution in https://github.com/bytedance/xgplayer/pull/453
- @doctoroyy made their first contribution in https://github.com/bytedance/xgplayer/pull/536
- @m1heng made their first contribution in https://github.com/bytedance/xgplayer/pull/660
- @mowatermelon made their first contribution in https://github.com/bytedance/xgplayer/pull/681
- @yiwen03 made their first contribution in https://github.com/bytedance/xgplayer/pull/718
- @oyuyue made their first contribution in https://github.com/bytedance/xgplayer/pull/727
- @iChengbo made their first contribution in https://github.com/bytedance/xgplayer/pull/907
- @tthzwq made their first contribution in https://github.com/bytedance/xgplayer/pull/902
- @Luokavin made their first contribution in https://github.com/bytedance/xgplayer/pull/960
- @ngolin made their first contribution in https://github.com/bytedance/xgplayer/pull/1085
- @WangsYi made their first contribution in https://github.com/bytedance/xgplayer/pull/1104
- @lqBeatrice made their first contribution in https://github.com/bytedance/xgplayer/pull/1164
- @shanyutongxue made their first contribution in https://github.com/bytedance/xgplayer/pull/1203
- @xinghui-lc made their first contribution in https://github.com/bytedance/xgplayer/pull/1222
- @legolaserea made their first contribution in https://github.com/bytedance/xgplayer/pull/1243
- @l0rem1psum made their first contribution in https://github.com/bytedance/xgplayer/pull/1247
- @ehangwork made their first contribution in https://github.com/bytedance/xgplayer/pull/1268
- @LockingReal made their first contribution in https://github.com/bytedance/xgplayer/pull/1308
- @chenglu4343 made their first contribution in https://github.com/bytedance/xgplayer/pull/1332
- @thefrankhu made their first contribution in https://github.com/bytedance/xgplayer/pull/1397
- @cyanql made their first contribution in https://github.com/bytedance/xgplayer/pull/1491
- @Mayandev made their first contribution in https://github.com/bytedance/xgplayer/pull/1517
- @chenyongjinAtBD made their first contribution in https://github.com/bytedance/xgplayer/pull/1540
- @zzzhr1990 made their first contribution in https://github.com/bytedance/xgplayer/pull/1586
- @Road-sun made their first contribution in https://github.com/bytedance/xgplayer/pull/1603
- @vaebe made their first contribution in https://github.com/bytedance/xgplayer/pull/1656
- @WillemJiang made their first contribution in https://github.com/bytedance/xgplayer/pull/1707
- @shiyinweilai made their first contribution in https://github.com/bytedance/xgplayer/pull/1727
- @indolentface made their first contribution in https://github.com/bytedance/xgplayer/pull/1695
- @SimonAllen0901 made their first contribution in https://github.com/bytedance/xgplayer/pull/1733
- @jeddygong made their first contribution in https://github.com/bytedance/xgplayer/pull/1767
- @xiong-001 made their first contribution in https://github.com/bytedance/xgplayer/pull/1776
- @meet-student made their first contribution in https://github.com/bytedance/xgplayer/pull/1802
- @Tiany000 made their first contribution in https://github.com/bytedance/xgplayer/pull/1789
- @Eson-Jia made their first contribution in https://github.com/bytedance/xgplayer/pull/1812
- @fengong made their first contribution in https://github.com/bytedance/xgplayer/pull/1839
- @brknl28 made their first contribution in https://github.com/bytedance/xgplayer/pull/1814
- @hobostay made their first contribution in https://github.com/bytedance/xgplayer/pull/1899
Full Changelog: https://github.com/bytedance/xgplayer/commits/v3.0.25-rc.2
v7.14.2
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142
shadcn@4.4.0
- #10451
e456fed9d3f0b7aacf7084aecc02a75e8fde622dThanks @shadcn! - add apply --only
9c572ab778b5a0ab42693eb07bc4a75d0c24603eThanks @shadcn! - fix chartColor in presets
electron v41.2.2
- Fixed absent 'Electron Isolated Context' in the execution context dropdown in Dev Tools. #51078 (Also in 42)
- Fixed an issue where
nodeIntegrationInWorkerdidn't always work in AudioWorklet. #51006 (Also in 42) - Fixed an issue where saving edited PDF files would fail with a cross-origin SecurityError. #51073 (Also in 42)
- Fixed bug that could occasionally cause browserWindow's
always-on-top-changedeven to fire with incorrect values. #51135 (Also in 40, 42) - Fixed test scaffolding bug when running tests locally on Linux. #51150 (Also in 40, 42)
- Fixed
gn genfailing to resolveelectron_versionwhen building from agit worktreecheckout. #51165 (Also in 39, 40, 42) - Security: backported fixes for CVE-2026-6296, CVE-2026-6297, CVE-2026-6298, CVE-2026-6299, CVE-2026-6358, CVE-2026-6359, CVE-2026-6300, CVE-2026-6301, CVE-2026-6302, CVE-2026-6303, CVE-2026-6304, CVE-2026-6306, CVE-2026-6307, CVE-2026-6308, CVE-2026-6309, CVE-2026-6360, CVE-2026-6311, CVE-2026-6312, CVE-2026-6313, CVE-2026-6314, CVE-2026-6316, CVE-2026-6318, CVE-2026-6361, CVE-2026-6362, CVE-2026-6363. #51137
electron v42.0.0-beta.5
Note: This is a beta release. Please file new issues for any bugs you find in it.
This release is published to npm under the beta tag and can be installed via npm install electron@beta, or npm install electron@42.0.0-beta.5.
- Fixed bug that could occasionally cause browserWindow's
always-on-top-changedeven to fire with incorrect values. #51133 (Also in 40, 41) - Fixed test scaffolding bug when running tests locally on Linux. #51149 (Also in 40, 41)
- Fixed
gn genfailing to resolveelectron_versionwhen building from agit worktreecheckout. #51166 (Also in 39, 40, 41) - Security: backported fixes for CVE-2026-6358, CVE-2026-6359, CVE-2026-6360, CVE-2026-6310, CVE-2026-6312, CVE-2026-6313, CVE-2026-6314, CVE-2026-6316, CVE-2026-6361, CVE-2026-6362. #51136
create-rari-app@0.5.3
- 960f3e7a chore: update dependencies in pnpm-workspace.yaml
Full Changelog: https://github.com/rari-build/rari/compare/create-rari-app@0.5.2...create-rari-app@0.5.3
rari@0.13.0
- 960f3e7a chore: update dependencies in pnpm-workspace.yaml
- 86c08a71 feat(build, ci): add rari-win32-arm64
Full Changelog: https://github.com/rari-build/rari/compare/rari@0.12.2...rari@0.13.0