unified-video-framework 1.4.436 → 1.4.437
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/web/dist/WebPlayer.d.ts +6 -0
- package/packages/web/dist/WebPlayer.d.ts.map +1 -1
- package/packages/web/dist/WebPlayer.js +236 -2
- package/packages/web/dist/WebPlayer.js.map +1 -1
- package/packages/web/dist/drm/systems/WidevineDRM.js +70 -6
- package/packages/web/dist/index.d.ts +1 -0
- package/packages/web/dist/index.d.ts.map +1 -1
- package/packages/web/dist/index.js.map +1 -1
- package/packages/web/dist/react/types/FlashNewsTickerTypes.d.ts +20 -0
- package/packages/web/dist/react/types/FlashNewsTickerTypes.d.ts.map +1 -1
- package/packages/web/src/WebPlayer.ts +280 -4
- package/packages/web/src/index.ts +11 -0
- package/packages/web/src/react/types/FlashNewsTickerTypes.ts +77 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.437",
|
|
4
4
|
"description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
|
|
5
5
|
"main": "packages/core/dist/index.js",
|
|
6
6
|
"types": "packages/core/dist/index.d.ts",
|
|
@@ -162,6 +162,12 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
162
162
|
setPlaybackRate(rate: number): void;
|
|
163
163
|
setFlashNewsTicker(config: FlashNewsTickerConfig): void;
|
|
164
164
|
private createTickerElement;
|
|
165
|
+
private createSimpleTickerElement;
|
|
166
|
+
private createBroadcastTickerElement;
|
|
167
|
+
private getBroadcastThemeColors;
|
|
168
|
+
private createGlobeElement;
|
|
169
|
+
private createLiveBadgeElement;
|
|
170
|
+
private ensureTickerAnimations;
|
|
165
171
|
private calculateTickerDuration;
|
|
166
172
|
setAutoQuality(enabled: boolean): void;
|
|
167
173
|
enterFullscreen(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAOL,OAAO,EACP,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1876,8 +1876,14 @@ export class WebPlayer extends BasePlayer {
|
|
|
1876
1876
|
}
|
|
1877
1877
|
}
|
|
1878
1878
|
createTickerElement(config, position) {
|
|
1879
|
+
if (config.styleVariant === 'broadcast') {
|
|
1880
|
+
return this.createBroadcastTickerElement(config, position);
|
|
1881
|
+
}
|
|
1882
|
+
return this.createSimpleTickerElement(config, position);
|
|
1883
|
+
}
|
|
1884
|
+
createSimpleTickerElement(config, position) {
|
|
1879
1885
|
const ticker = document.createElement('div');
|
|
1880
|
-
ticker.className = `uvf-flash-ticker ticker-${position}`;
|
|
1886
|
+
ticker.className = `uvf-flash-ticker ticker-${position} ticker-simple`;
|
|
1881
1887
|
const bottomOffset = config.bottomOffset || 0;
|
|
1882
1888
|
const topOffset = config.topOffset || 0;
|
|
1883
1889
|
const height = config.height || 40;
|
|
@@ -1952,6 +1958,223 @@ export class WebPlayer extends BasePlayer {
|
|
|
1952
1958
|
renderItems();
|
|
1953
1959
|
}
|
|
1954
1960
|
ticker.appendChild(track);
|
|
1961
|
+
this.ensureTickerAnimations();
|
|
1962
|
+
return ticker;
|
|
1963
|
+
}
|
|
1964
|
+
createBroadcastTickerElement(config, position) {
|
|
1965
|
+
const broadcastStyle = config.broadcastStyle || {};
|
|
1966
|
+
const theme = broadcastStyle.theme || 'breaking-red';
|
|
1967
|
+
const themeColors = this.getBroadcastThemeColors(theme, broadcastStyle);
|
|
1968
|
+
const ticker = document.createElement('div');
|
|
1969
|
+
ticker.className = `uvf-flash-ticker ticker-${position} ticker-broadcast`;
|
|
1970
|
+
const bottomOffset = config.bottomOffset || 0;
|
|
1971
|
+
const topOffset = config.topOffset || 0;
|
|
1972
|
+
const headerHeight = broadcastStyle.headerHeight || 28;
|
|
1973
|
+
const bodyHeight = config.height || 36;
|
|
1974
|
+
const totalHeight = headerHeight + bodyHeight;
|
|
1975
|
+
ticker.style.cssText = `
|
|
1976
|
+
position: absolute;
|
|
1977
|
+
left: 0;
|
|
1978
|
+
right: 0;
|
|
1979
|
+
height: ${totalHeight}px;
|
|
1980
|
+
${position === 'top' ? `top: ${topOffset}px;` : `bottom: ${bottomOffset}px;`}
|
|
1981
|
+
overflow: hidden;
|
|
1982
|
+
pointer-events: none;
|
|
1983
|
+
display: flex;
|
|
1984
|
+
flex-direction: column;
|
|
1985
|
+
`;
|
|
1986
|
+
const header = document.createElement('div');
|
|
1987
|
+
header.className = 'uvf-ticker-header';
|
|
1988
|
+
header.style.cssText = `
|
|
1989
|
+
display: flex;
|
|
1990
|
+
align-items: center;
|
|
1991
|
+
height: ${headerHeight}px;
|
|
1992
|
+
background: ${themeColors.headerBg};
|
|
1993
|
+
padding: 0 12px;
|
|
1994
|
+
position: relative;
|
|
1995
|
+
`;
|
|
1996
|
+
if (broadcastStyle.showGlobe !== false) {
|
|
1997
|
+
const globe = this.createGlobeElement(broadcastStyle.animateGlobe !== false);
|
|
1998
|
+
header.appendChild(globe);
|
|
1999
|
+
}
|
|
2000
|
+
const headerText = document.createElement('span');
|
|
2001
|
+
headerText.className = 'uvf-ticker-header-text';
|
|
2002
|
+
headerText.textContent = broadcastStyle.headerText || 'BREAKING NEWS';
|
|
2003
|
+
headerText.style.cssText = `
|
|
2004
|
+
color: ${broadcastStyle.headerTextColor || '#ffffff'};
|
|
2005
|
+
font-size: ${broadcastStyle.headerFontSize || 16}px;
|
|
2006
|
+
font-weight: 800;
|
|
2007
|
+
text-transform: uppercase;
|
|
2008
|
+
letter-spacing: 1px;
|
|
2009
|
+
margin-left: ${broadcastStyle.showGlobe !== false ? '8px' : '0'};
|
|
2010
|
+
text-shadow: 1px 1px 2px rgba(0,0,0,0.3);
|
|
2011
|
+
`;
|
|
2012
|
+
header.appendChild(headerText);
|
|
2013
|
+
if (broadcastStyle.showLiveBadge !== false) {
|
|
2014
|
+
const liveBadge = this.createLiveBadgeElement(broadcastStyle.pulseLiveBadge !== false);
|
|
2015
|
+
header.appendChild(liveBadge);
|
|
2016
|
+
}
|
|
2017
|
+
const body = document.createElement('div');
|
|
2018
|
+
body.className = 'uvf-ticker-body';
|
|
2019
|
+
body.style.cssText = `
|
|
2020
|
+
display: flex;
|
|
2021
|
+
align-items: center;
|
|
2022
|
+
height: ${bodyHeight}px;
|
|
2023
|
+
background: ${themeColors.bodyBg};
|
|
2024
|
+
overflow: hidden;
|
|
2025
|
+
position: relative;
|
|
2026
|
+
`;
|
|
2027
|
+
const track = document.createElement('div');
|
|
2028
|
+
track.className = 'uvf-ticker-track';
|
|
2029
|
+
const duration = this.calculateTickerDuration(config);
|
|
2030
|
+
track.style.cssText = `
|
|
2031
|
+
display: flex;
|
|
2032
|
+
white-space: nowrap;
|
|
2033
|
+
animation: ticker-scroll ${duration}s linear infinite;
|
|
2034
|
+
will-change: transform;
|
|
2035
|
+
padding-left: 100%;
|
|
2036
|
+
`;
|
|
2037
|
+
const containerWidth = this.container?.offsetWidth || 1920;
|
|
2038
|
+
const baseFontSize = config.fontSize || 14;
|
|
2039
|
+
let responsiveFontSize = baseFontSize;
|
|
2040
|
+
if (containerWidth < 768) {
|
|
2041
|
+
responsiveFontSize = Math.max(baseFontSize * 0.8, 12);
|
|
2042
|
+
}
|
|
2043
|
+
else if (containerWidth < 1280) {
|
|
2044
|
+
responsiveFontSize = Math.max(baseFontSize * 0.9, 13);
|
|
2045
|
+
}
|
|
2046
|
+
const renderItems = () => {
|
|
2047
|
+
if (!config.items)
|
|
2048
|
+
return;
|
|
2049
|
+
config.items.forEach((item) => {
|
|
2050
|
+
const span = document.createElement('span');
|
|
2051
|
+
if (item.html) {
|
|
2052
|
+
span.innerHTML = item.html;
|
|
2053
|
+
}
|
|
2054
|
+
else {
|
|
2055
|
+
span.textContent = item.text;
|
|
2056
|
+
}
|
|
2057
|
+
span.style.cssText = `
|
|
2058
|
+
color: ${config.textColor || '#ffffff'};
|
|
2059
|
+
font-size: ${responsiveFontSize}px;
|
|
2060
|
+
font-weight: ${config.fontWeight || 600};
|
|
2061
|
+
margin-right: ${config.gap || 100}px;
|
|
2062
|
+
display: inline-flex;
|
|
2063
|
+
align-items: center;
|
|
2064
|
+
`;
|
|
2065
|
+
track.appendChild(span);
|
|
2066
|
+
if (config.separator) {
|
|
2067
|
+
const sep = document.createElement('span');
|
|
2068
|
+
sep.textContent = config.separator;
|
|
2069
|
+
sep.style.cssText = `
|
|
2070
|
+
color: ${config.textColor || '#ffffff'};
|
|
2071
|
+
font-size: ${responsiveFontSize}px;
|
|
2072
|
+
opacity: 0.5;
|
|
2073
|
+
margin: 0 8px;
|
|
2074
|
+
`;
|
|
2075
|
+
track.appendChild(sep);
|
|
2076
|
+
}
|
|
2077
|
+
});
|
|
2078
|
+
};
|
|
2079
|
+
for (let i = 0; i < 10; i++) {
|
|
2080
|
+
renderItems();
|
|
2081
|
+
}
|
|
2082
|
+
body.appendChild(track);
|
|
2083
|
+
ticker.appendChild(header);
|
|
2084
|
+
ticker.appendChild(body);
|
|
2085
|
+
this.ensureTickerAnimations();
|
|
2086
|
+
return ticker;
|
|
2087
|
+
}
|
|
2088
|
+
getBroadcastThemeColors(theme, broadcastStyle) {
|
|
2089
|
+
switch (theme) {
|
|
2090
|
+
case 'breaking-red':
|
|
2091
|
+
return {
|
|
2092
|
+
headerBg: 'linear-gradient(90deg, #cc0000 0%, #ff0000 50%, #cc0000 100%)',
|
|
2093
|
+
bodyBg: 'linear-gradient(90deg, #1a237e 0%, #283593 50%, #1a237e 100%)'
|
|
2094
|
+
};
|
|
2095
|
+
case 'breaking-blue':
|
|
2096
|
+
return {
|
|
2097
|
+
headerBg: 'linear-gradient(90deg, #0d47a1 0%, #1565c0 50%, #0d47a1 100%)',
|
|
2098
|
+
bodyBg: 'linear-gradient(90deg, #1a1a2e 0%, #16213e 50%, #1a1a2e 100%)'
|
|
2099
|
+
};
|
|
2100
|
+
case 'alert-red':
|
|
2101
|
+
return {
|
|
2102
|
+
headerBg: 'linear-gradient(90deg, #b71c1c 0%, #d32f2f 50%, #b71c1c 100%)',
|
|
2103
|
+
bodyBg: 'linear-gradient(90deg, #7f0000 0%, #9a0000 50%, #7f0000 100%)'
|
|
2104
|
+
};
|
|
2105
|
+
case 'news-blue':
|
|
2106
|
+
return {
|
|
2107
|
+
headerBg: 'linear-gradient(90deg, #01579b 0%, #0277bd 50%, #01579b 100%)',
|
|
2108
|
+
bodyBg: 'linear-gradient(90deg, #002171 0%, #003c8f 50%, #002171 100%)'
|
|
2109
|
+
};
|
|
2110
|
+
case 'custom':
|
|
2111
|
+
return {
|
|
2112
|
+
headerBg: broadcastStyle.headerColor || '#cc0000',
|
|
2113
|
+
bodyBg: broadcastStyle.bodyColor || '#1a237e'
|
|
2114
|
+
};
|
|
2115
|
+
default:
|
|
2116
|
+
return {
|
|
2117
|
+
headerBg: 'linear-gradient(90deg, #cc0000 0%, #ff0000 50%, #cc0000 100%)',
|
|
2118
|
+
bodyBg: 'linear-gradient(90deg, #1a237e 0%, #283593 50%, #1a237e 100%)'
|
|
2119
|
+
};
|
|
2120
|
+
}
|
|
2121
|
+
}
|
|
2122
|
+
createGlobeElement(animate) {
|
|
2123
|
+
const globeContainer = document.createElement('div');
|
|
2124
|
+
globeContainer.className = 'uvf-ticker-globe';
|
|
2125
|
+
globeContainer.style.cssText = `
|
|
2126
|
+
width: 24px;
|
|
2127
|
+
height: 24px;
|
|
2128
|
+
position: relative;
|
|
2129
|
+
flex-shrink: 0;
|
|
2130
|
+
`;
|
|
2131
|
+
globeContainer.innerHTML = `
|
|
2132
|
+
<svg viewBox="0 0 24 24" fill="none" style="width: 100%; height: 100%; ${animate ? 'animation: globe-rotate 8s linear infinite;' : ''}">
|
|
2133
|
+
<circle cx="12" cy="12" r="10" stroke="#ffffff" stroke-width="1.5" fill="none"/>
|
|
2134
|
+
<ellipse cx="12" cy="12" rx="10" ry="4" stroke="#ffffff" stroke-width="1" fill="none"/>
|
|
2135
|
+
<ellipse cx="12" cy="12" rx="4" ry="10" stroke="#ffffff" stroke-width="1" fill="none"/>
|
|
2136
|
+
<line x1="2" y1="12" x2="22" y2="12" stroke="#ffffff" stroke-width="0.5"/>
|
|
2137
|
+
<line x1="12" y1="2" x2="12" y2="22" stroke="#ffffff" stroke-width="0.5"/>
|
|
2138
|
+
<path d="M4 8 Q12 6 20 8" stroke="#ffffff" stroke-width="0.5" fill="none"/>
|
|
2139
|
+
<path d="M4 16 Q12 18 20 16" stroke="#ffffff" stroke-width="0.5" fill="none"/>
|
|
2140
|
+
</svg>
|
|
2141
|
+
`;
|
|
2142
|
+
return globeContainer;
|
|
2143
|
+
}
|
|
2144
|
+
createLiveBadgeElement(pulse) {
|
|
2145
|
+
const badge = document.createElement('div');
|
|
2146
|
+
badge.className = 'uvf-ticker-live-badge';
|
|
2147
|
+
badge.style.cssText = `
|
|
2148
|
+
display: flex;
|
|
2149
|
+
align-items: center;
|
|
2150
|
+
margin-left: auto;
|
|
2151
|
+
padding: 2px 8px;
|
|
2152
|
+
background: #ff0000;
|
|
2153
|
+
border-radius: 3px;
|
|
2154
|
+
${pulse ? 'animation: live-pulse 1.5s ease-in-out infinite;' : ''}
|
|
2155
|
+
`;
|
|
2156
|
+
const dot = document.createElement('span');
|
|
2157
|
+
dot.style.cssText = `
|
|
2158
|
+
width: 8px;
|
|
2159
|
+
height: 8px;
|
|
2160
|
+
background: #ffffff;
|
|
2161
|
+
border-radius: 50%;
|
|
2162
|
+
margin-right: 4px;
|
|
2163
|
+
${pulse ? 'animation: dot-blink 1s ease-in-out infinite;' : ''}
|
|
2164
|
+
`;
|
|
2165
|
+
badge.appendChild(dot);
|
|
2166
|
+
const text = document.createElement('span');
|
|
2167
|
+
text.textContent = 'LIVE';
|
|
2168
|
+
text.style.cssText = `
|
|
2169
|
+
color: #ffffff;
|
|
2170
|
+
font-size: 11px;
|
|
2171
|
+
font-weight: 800;
|
|
2172
|
+
letter-spacing: 0.5px;
|
|
2173
|
+
`;
|
|
2174
|
+
badge.appendChild(text);
|
|
2175
|
+
return badge;
|
|
2176
|
+
}
|
|
2177
|
+
ensureTickerAnimations() {
|
|
1955
2178
|
if (!document.querySelector('#uvf-ticker-animation')) {
|
|
1956
2179
|
const style = document.createElement('style');
|
|
1957
2180
|
style.id = 'uvf-ticker-animation';
|
|
@@ -1960,10 +2183,21 @@ export class WebPlayer extends BasePlayer {
|
|
|
1960
2183
|
0% { transform: translateX(0%); }
|
|
1961
2184
|
100% { transform: translateX(-100%); }
|
|
1962
2185
|
}
|
|
2186
|
+
@keyframes globe-rotate {
|
|
2187
|
+
0% { transform: rotate(0deg); }
|
|
2188
|
+
100% { transform: rotate(360deg); }
|
|
2189
|
+
}
|
|
2190
|
+
@keyframes live-pulse {
|
|
2191
|
+
0%, 100% { opacity: 1; transform: scale(1); }
|
|
2192
|
+
50% { opacity: 0.85; transform: scale(1.02); }
|
|
2193
|
+
}
|
|
2194
|
+
@keyframes dot-blink {
|
|
2195
|
+
0%, 100% { opacity: 1; }
|
|
2196
|
+
50% { opacity: 0.3; }
|
|
2197
|
+
}
|
|
1963
2198
|
`;
|
|
1964
2199
|
document.head.appendChild(style);
|
|
1965
2200
|
}
|
|
1966
|
-
return ticker;
|
|
1967
2201
|
}
|
|
1968
2202
|
calculateTickerDuration(config) {
|
|
1969
2203
|
const speed = config.speed || 50;
|