unified-video-framework 1.4.195 → 1.4.197
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.197",
|
|
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",
|
|
@@ -101,6 +101,8 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
101
101
|
private setupAutoplayRetry;
|
|
102
102
|
private showPlayOverlay;
|
|
103
103
|
private hidePlayOverlay;
|
|
104
|
+
private showUnmuteButton;
|
|
105
|
+
private hideUnmuteButton;
|
|
104
106
|
private updateTimeTooltip;
|
|
105
107
|
private hideTimeTooltip;
|
|
106
108
|
private setupUserInteractionTracking;
|
|
@@ -226,6 +228,7 @@ export declare class WebPlayer extends BasePlayer {
|
|
|
226
228
|
private setSubtitle;
|
|
227
229
|
private _updateCastActiveTracks;
|
|
228
230
|
private onCastButtonClick;
|
|
231
|
+
private showAirPlayPicker;
|
|
229
232
|
private stopCasting;
|
|
230
233
|
private initCast;
|
|
231
234
|
private shareVideo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -159,6 +159,8 @@ export class WebPlayer extends BasePlayer {
|
|
|
159
159
|
this.video.loop = this.config.loop ?? false;
|
|
160
160
|
this.video.playsInline = this.config.playsInline ?? true;
|
|
161
161
|
this.video.preload = this.config.preload ?? 'metadata';
|
|
162
|
+
this.video.webkitAllowsAirPlay = true;
|
|
163
|
+
this.video.setAttribute('x-webkit-airplay', 'allow');
|
|
162
164
|
if (this.config.crossOrigin) {
|
|
163
165
|
this.video.crossOrigin = this.config.crossOrigin;
|
|
164
166
|
}
|
|
@@ -712,6 +714,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
712
714
|
try {
|
|
713
715
|
await this.play();
|
|
714
716
|
this.debugLog('✅ Muted autoplay successful');
|
|
717
|
+
this.showUnmuteButton();
|
|
715
718
|
return true;
|
|
716
719
|
}
|
|
717
720
|
catch (error) {
|
|
@@ -874,6 +877,110 @@ export class WebPlayer extends BasePlayer {
|
|
|
874
877
|
overlay.remove();
|
|
875
878
|
}
|
|
876
879
|
}
|
|
880
|
+
showUnmuteButton() {
|
|
881
|
+
this.hideUnmuteButton();
|
|
882
|
+
this.debugLog('🔇 Showing unmute button - video autoplaying muted');
|
|
883
|
+
const unmuteBtn = document.createElement('button');
|
|
884
|
+
unmuteBtn.id = 'uvf-unmute-btn';
|
|
885
|
+
unmuteBtn.className = 'uvf-unmute-btn';
|
|
886
|
+
unmuteBtn.setAttribute('aria-label', 'Tap to unmute');
|
|
887
|
+
unmuteBtn.innerHTML = `
|
|
888
|
+
<svg viewBox="0 0 24 24" class="uvf-unmute-icon">
|
|
889
|
+
<path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"/>
|
|
890
|
+
</svg>
|
|
891
|
+
<span class="uvf-unmute-text">Tap to unmute</span>
|
|
892
|
+
`;
|
|
893
|
+
unmuteBtn.addEventListener('click', (e) => {
|
|
894
|
+
e.stopPropagation();
|
|
895
|
+
if (this.video) {
|
|
896
|
+
this.video.muted = false;
|
|
897
|
+
this.debugLog('🔊 Video unmuted by user');
|
|
898
|
+
this.hideUnmuteButton();
|
|
899
|
+
}
|
|
900
|
+
});
|
|
901
|
+
const style = document.createElement('style');
|
|
902
|
+
style.textContent = `
|
|
903
|
+
.uvf-unmute-btn {
|
|
904
|
+
position: absolute !important;
|
|
905
|
+
bottom: 80px !important;
|
|
906
|
+
left: 20px !important;
|
|
907
|
+
z-index: 1000 !important;
|
|
908
|
+
display: flex !important;
|
|
909
|
+
align-items: center !important;
|
|
910
|
+
gap: 8px !important;
|
|
911
|
+
padding: 12px 16px !important;
|
|
912
|
+
background: rgba(0, 0, 0, 0.8) !important;
|
|
913
|
+
border: none !important;
|
|
914
|
+
border-radius: 4px !important;
|
|
915
|
+
color: white !important;
|
|
916
|
+
font-size: 14px !important;
|
|
917
|
+
font-weight: 500 !important;
|
|
918
|
+
cursor: pointer !important;
|
|
919
|
+
transition: all 0.2s ease !important;
|
|
920
|
+
backdrop-filter: blur(10px) !important;
|
|
921
|
+
-webkit-backdrop-filter: blur(10px) !important;
|
|
922
|
+
animation: uvf-unmute-pulse 2s ease-in-out infinite !important;
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
.uvf-unmute-btn:hover {
|
|
926
|
+
background: rgba(0, 0, 0, 0.9) !important;
|
|
927
|
+
transform: scale(1.05) !important;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
.uvf-unmute-btn:active {
|
|
931
|
+
transform: scale(0.95) !important;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
.uvf-unmute-icon {
|
|
935
|
+
width: 20px !important;
|
|
936
|
+
height: 20px !important;
|
|
937
|
+
fill: white !important;
|
|
938
|
+
}
|
|
939
|
+
|
|
940
|
+
.uvf-unmute-text {
|
|
941
|
+
white-space: nowrap !important;
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
@keyframes uvf-unmute-pulse {
|
|
945
|
+
0%, 100% {
|
|
946
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
|
|
947
|
+
}
|
|
948
|
+
50% {
|
|
949
|
+
box-shadow: 0 2px 16px rgba(255, 255, 255, 0.2) !important;
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
/* Mobile responsive */
|
|
954
|
+
@media (max-width: 767px) {
|
|
955
|
+
.uvf-unmute-btn {
|
|
956
|
+
bottom: 70px !important;
|
|
957
|
+
left: 50% !important;
|
|
958
|
+
transform: translateX(-50%) !important;
|
|
959
|
+
padding: 10px 14px !important;
|
|
960
|
+
font-size: 13px !important;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
.uvf-unmute-btn:hover {
|
|
964
|
+
transform: translateX(-50%) scale(1.05) !important;
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
`;
|
|
968
|
+
if (!document.getElementById('uvf-unmute-styles')) {
|
|
969
|
+
style.id = 'uvf-unmute-styles';
|
|
970
|
+
document.head.appendChild(style);
|
|
971
|
+
}
|
|
972
|
+
if (this.playerWrapper) {
|
|
973
|
+
this.playerWrapper.appendChild(unmuteBtn);
|
|
974
|
+
this.debugLog('✅ Unmute button added to player');
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
hideUnmuteButton() {
|
|
978
|
+
const unmuteBtn = document.getElementById('uvf-unmute-btn');
|
|
979
|
+
if (unmuteBtn) {
|
|
980
|
+
unmuteBtn.remove();
|
|
981
|
+
this.debugLog('Unmute button removed');
|
|
982
|
+
}
|
|
983
|
+
}
|
|
877
984
|
updateTimeTooltip(e) {
|
|
878
985
|
const progressBar = document.getElementById('uvf-progress-bar');
|
|
879
986
|
const tooltip = document.getElementById('uvf-time-tooltip');
|
|
@@ -3638,18 +3745,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
3638
3745
|
height: 24px;
|
|
3639
3746
|
}
|
|
3640
3747
|
|
|
3641
|
-
.uvf-player-wrapper.uvf-fullscreen .uvf-top-btn {
|
|
3642
|
-
width: 40px;
|
|
3643
|
-
height: 40px;
|
|
3644
|
-
min-width: 40px;
|
|
3645
|
-
min-height: 40px;
|
|
3646
|
-
}
|
|
3647
|
-
|
|
3648
|
-
.uvf-player-wrapper.uvf-fullscreen .uvf-top-btn svg {
|
|
3649
|
-
width: 20px;
|
|
3650
|
-
height: 20px;
|
|
3651
|
-
}
|
|
3652
|
-
|
|
3653
3748
|
.uvf-player-wrapper.uvf-fullscreen .uvf-time-display {
|
|
3654
3749
|
font-size: 14px;
|
|
3655
3750
|
padding: 0 10px;
|
|
@@ -3749,12 +3844,29 @@ export class WebPlayer extends BasePlayer {
|
|
|
3749
3844
|
}
|
|
3750
3845
|
|
|
3751
3846
|
|
|
3752
|
-
/* Mobile portrait - hide skip buttons */
|
|
3847
|
+
/* Mobile portrait - hide skip buttons, ensure top bar visible */
|
|
3753
3848
|
@media screen and (max-width: 767px) and (orientation: portrait) {
|
|
3754
3849
|
#uvf-skip-back,
|
|
3755
3850
|
#uvf-skip-forward {
|
|
3756
3851
|
display: none !important;
|
|
3757
3852
|
}
|
|
3853
|
+
|
|
3854
|
+
/* Ensure top bar and controls are visible */
|
|
3855
|
+
.uvf-top-bar {
|
|
3856
|
+
display: flex !important;
|
|
3857
|
+
z-index: 10 !important;
|
|
3858
|
+
}
|
|
3859
|
+
|
|
3860
|
+
.uvf-top-controls {
|
|
3861
|
+
display: flex !important;
|
|
3862
|
+
}
|
|
3863
|
+
|
|
3864
|
+
/* Show top bar when controls are visible or on hover */
|
|
3865
|
+
.uvf-player-wrapper:hover .uvf-top-bar,
|
|
3866
|
+
.uvf-player-wrapper.controls-visible .uvf-top-bar {
|
|
3867
|
+
opacity: 1 !important;
|
|
3868
|
+
transform: translateY(0) !important;
|
|
3869
|
+
}
|
|
3758
3870
|
}
|
|
3759
3871
|
|
|
3760
3872
|
/* Mobile devices (landscape) - Optimized for fullscreen viewing with safe areas */
|
|
@@ -3852,18 +3964,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
3852
3964
|
gap: 6px !important;
|
|
3853
3965
|
}
|
|
3854
3966
|
|
|
3855
|
-
.uvf-top-btn {
|
|
3856
|
-
width: 40px;
|
|
3857
|
-
height: 40px;
|
|
3858
|
-
min-width: 40px;
|
|
3859
|
-
min-height: 40px;
|
|
3860
|
-
}
|
|
3861
|
-
|
|
3862
|
-
.uvf-top-btn svg {
|
|
3863
|
-
width: 18px;
|
|
3864
|
-
height: 18px;
|
|
3865
|
-
}
|
|
3866
|
-
|
|
3867
3967
|
/* Title bar within top bar - landscape */
|
|
3868
3968
|
.uvf-top-bar .uvf-title-bar {
|
|
3869
3969
|
padding: 0;
|
|
@@ -3949,19 +4049,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
3949
4049
|
height: 23px;
|
|
3950
4050
|
}
|
|
3951
4051
|
|
|
3952
|
-
/* Tablet top controls */
|
|
3953
|
-
.uvf-top-btn {
|
|
3954
|
-
width: 42px;
|
|
3955
|
-
height: 42px;
|
|
3956
|
-
min-width: 42px;
|
|
3957
|
-
min-height: 42px;
|
|
3958
|
-
}
|
|
3959
|
-
|
|
3960
|
-
.uvf-top-btn svg {
|
|
3961
|
-
width: 19px;
|
|
3962
|
-
height: 19px;
|
|
3963
|
-
}
|
|
3964
|
-
|
|
3965
4052
|
/* Top bar for tablet */
|
|
3966
4053
|
.uvf-top-bar {
|
|
3967
4054
|
padding: 16px;
|
|
@@ -4100,23 +4187,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4100
4187
|
height: 24px;
|
|
4101
4188
|
}
|
|
4102
4189
|
|
|
4103
|
-
/* Enhanced top controls */
|
|
4104
|
-
.uvf-top-btn {
|
|
4105
|
-
width: 40px;
|
|
4106
|
-
height: 40px;
|
|
4107
|
-
transition: all 0.2s cubic-bezier(0.4, 0.0, 0.2, 1);
|
|
4108
|
-
}
|
|
4109
|
-
|
|
4110
|
-
.uvf-top-btn:hover {
|
|
4111
|
-
transform: scale(1.1);
|
|
4112
|
-
background: var(--uvf-overlay-medium);
|
|
4113
|
-
}
|
|
4114
|
-
|
|
4115
|
-
.uvf-top-btn svg {
|
|
4116
|
-
width: 20px;
|
|
4117
|
-
height: 20px;
|
|
4118
|
-
}
|
|
4119
|
-
|
|
4120
4190
|
/* Top bar for desktop 1024px+ */
|
|
4121
4191
|
.uvf-top-bar {
|
|
4122
4192
|
padding: 20px;
|
|
@@ -4236,16 +4306,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4236
4306
|
height: 28px;
|
|
4237
4307
|
}
|
|
4238
4308
|
|
|
4239
|
-
.uvf-top-btn {
|
|
4240
|
-
width: 44px;
|
|
4241
|
-
height: 44px;
|
|
4242
|
-
}
|
|
4243
|
-
|
|
4244
|
-
.uvf-top-btn svg {
|
|
4245
|
-
width: 22px;
|
|
4246
|
-
height: 22px;
|
|
4247
|
-
}
|
|
4248
|
-
|
|
4249
4309
|
.uvf-center-play-btn {
|
|
4250
4310
|
width: clamp(64px, 10vw, 76px);
|
|
4251
4311
|
height: clamp(64px, 10vw, 76px);
|
|
@@ -4286,8 +4346,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
4286
4346
|
/* High-DPI display optimizations */
|
|
4287
4347
|
@media screen and (-webkit-min-device-pixel-ratio: 2),
|
|
4288
4348
|
screen and (min-resolution: 192dpi) {
|
|
4289
|
-
.uvf-control-btn
|
|
4290
|
-
.uvf-top-btn {
|
|
4349
|
+
.uvf-control-btn {
|
|
4291
4350
|
image-rendering: -webkit-optimize-contrast;
|
|
4292
4351
|
image-rendering: crisp-edges;
|
|
4293
4352
|
}
|
|
@@ -4304,7 +4363,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4304
4363
|
/* Reduced motion accessibility */
|
|
4305
4364
|
@media (prefers-reduced-motion: reduce) {
|
|
4306
4365
|
.uvf-control-btn,
|
|
4307
|
-
.uvf-top-btn,
|
|
4308
4366
|
.uvf-center-play-btn,
|
|
4309
4367
|
.uvf-progress-handle,
|
|
4310
4368
|
.uvf-volume-slider,
|
|
@@ -4313,7 +4371,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4313
4371
|
}
|
|
4314
4372
|
|
|
4315
4373
|
.uvf-control-btn:hover,
|
|
4316
|
-
.uvf-top-btn:hover,
|
|
4317
4374
|
.uvf-center-play-btn:hover {
|
|
4318
4375
|
transform: none !important;
|
|
4319
4376
|
}
|
|
@@ -4339,11 +4396,6 @@ export class WebPlayer extends BasePlayer {
|
|
|
4339
4396
|
border-radius: 50%
|
|
4340
4397
|
}
|
|
4341
4398
|
|
|
4342
|
-
.uvf-top-btn {
|
|
4343
|
-
min-width: 44px;
|
|
4344
|
-
min-height: 44px;
|
|
4345
|
-
}
|
|
4346
|
-
|
|
4347
4399
|
.uvf-progress-bar {
|
|
4348
4400
|
height: 3px;
|
|
4349
4401
|
}
|
|
@@ -4362,22 +4414,21 @@ export class WebPlayer extends BasePlayer {
|
|
|
4362
4414
|
background: var(--uvf-overlay-medium);
|
|
4363
4415
|
transform: scale(0.95);
|
|
4364
4416
|
}
|
|
4365
|
-
|
|
4366
|
-
.uvf-top-btn:active {
|
|
4367
|
-
background: var(--uvf-overlay-medium);
|
|
4368
|
-
transform: scale(0.95);
|
|
4369
|
-
}
|
|
4370
4417
|
}
|
|
4371
4418
|
|
|
4372
4419
|
/* Keyboard navigation and accessibility */
|
|
4373
4420
|
.uvf-control-btn:focus-visible,
|
|
4374
|
-
.uvf-top-btn:focus-visible,
|
|
4375
4421
|
.uvf-center-play-btn:focus-visible {
|
|
4376
4422
|
outline: 2px solid var(--uvf-primary-color, #007bff);
|
|
4377
4423
|
outline-offset: 2px;
|
|
4378
4424
|
background: var(--uvf-overlay-medium);
|
|
4379
4425
|
}
|
|
4380
4426
|
|
|
4427
|
+
.uvf-top-btn:focus-visible {
|
|
4428
|
+
outline: 2px solid var(--uvf-primary-color, #007bff);
|
|
4429
|
+
outline-offset: 2px;
|
|
4430
|
+
}
|
|
4431
|
+
|
|
4381
4432
|
.uvf-progress-bar-wrapper:focus-visible {
|
|
4382
4433
|
outline: 2px solid var(--uvf-primary-color, #007bff);
|
|
4383
4434
|
outline-offset: 2px;
|
|
@@ -4409,7 +4460,10 @@ export class WebPlayer extends BasePlayer {
|
|
|
4409
4460
|
|
|
4410
4461
|
/* High contrast mode support */
|
|
4411
4462
|
@media (prefers-contrast: high) {
|
|
4412
|
-
.uvf-control-btn
|
|
4463
|
+
.uvf-control-btn {
|
|
4464
|
+
border: 1px solid;
|
|
4465
|
+
}
|
|
4466
|
+
|
|
4413
4467
|
.uvf-top-btn {
|
|
4414
4468
|
border: 1px solid;
|
|
4415
4469
|
}
|
|
@@ -5047,6 +5101,7 @@ export class WebPlayer extends BasePlayer {
|
|
|
5047
5101
|
else {
|
|
5048
5102
|
volumeIcon.style.display = 'block';
|
|
5049
5103
|
muteIcon.style.display = 'none';
|
|
5104
|
+
this.hideUnmuteButton();
|
|
5050
5105
|
}
|
|
5051
5106
|
}
|
|
5052
5107
|
});
|
|
@@ -5184,6 +5239,15 @@ export class WebPlayer extends BasePlayer {
|
|
|
5184
5239
|
const castBtn = document.getElementById('uvf-cast-btn');
|
|
5185
5240
|
const stopCastBtn = document.getElementById('uvf-stop-cast-btn');
|
|
5186
5241
|
const shareBtn = document.getElementById('uvf-share-btn');
|
|
5242
|
+
if (this.isIOSDevice() && castBtn) {
|
|
5243
|
+
castBtn.innerHTML = `
|
|
5244
|
+
<svg viewBox="0 0 24 24">
|
|
5245
|
+
<path d="M1 18h6v-2H1v2zm0-4h12v-2H1v2zm16.5 4.5c-1.25 0-2.45-.5-3.35-1.41L12 18.5l2.09 2.09c1.8 1.8 4.72 1.8 6.52 0 1.8-1.8 1.8-4.72 0-6.52L12 5.5 3.39 14.11c-1.8 1.8-1.8 4.72 0 6.52.9.9 2.1 1.41 3.35 1.41l6.76-6.76M12 7.91l6.89 6.89c.78.78.78 2.05 0 2.83-.78.78-2.05.78-2.83 0L12 13.57 7.94 17.63c-.78.78-2.05.78-2.83 0-.78-.78-.78-2.05 0-2.83L12 7.91z"/>
|
|
5246
|
+
</svg>
|
|
5247
|
+
`;
|
|
5248
|
+
castBtn.setAttribute('title', 'AirPlay');
|
|
5249
|
+
castBtn.setAttribute('aria-label', 'AirPlay');
|
|
5250
|
+
}
|
|
5187
5251
|
castBtn?.addEventListener('click', () => this.onCastButtonClick());
|
|
5188
5252
|
stopCastBtn?.addEventListener('click', () => this.stopCasting());
|
|
5189
5253
|
shareBtn?.addEventListener('click', () => this.shareVideo());
|
|
@@ -7134,6 +7198,10 @@ export class WebPlayer extends BasePlayer {
|
|
|
7134
7198
|
catch (_) { }
|
|
7135
7199
|
}
|
|
7136
7200
|
onCastButtonClick() {
|
|
7201
|
+
if (this.isIOSDevice()) {
|
|
7202
|
+
this.showAirPlayPicker();
|
|
7203
|
+
return;
|
|
7204
|
+
}
|
|
7137
7205
|
try {
|
|
7138
7206
|
const castNs = window.cast;
|
|
7139
7207
|
if (this.isCasting && castNs && castNs.framework) {
|
|
@@ -7145,6 +7213,27 @@ export class WebPlayer extends BasePlayer {
|
|
|
7145
7213
|
catch (_) { }
|
|
7146
7214
|
this.initCast();
|
|
7147
7215
|
}
|
|
7216
|
+
showAirPlayPicker() {
|
|
7217
|
+
if (!this.video) {
|
|
7218
|
+
this.showNotification('Video not ready');
|
|
7219
|
+
return;
|
|
7220
|
+
}
|
|
7221
|
+
const videoElement = this.video;
|
|
7222
|
+
if (typeof videoElement.webkitShowPlaybackTargetPicker === 'function') {
|
|
7223
|
+
try {
|
|
7224
|
+
videoElement.webkitShowPlaybackTargetPicker();
|
|
7225
|
+
this.debugLog('AirPlay picker shown');
|
|
7226
|
+
}
|
|
7227
|
+
catch (error) {
|
|
7228
|
+
this.debugWarn('Failed to show AirPlay picker:', error.message);
|
|
7229
|
+
this.showNotification('AirPlay not available');
|
|
7230
|
+
}
|
|
7231
|
+
}
|
|
7232
|
+
else {
|
|
7233
|
+
this.debugWarn('AirPlay not supported on this device');
|
|
7234
|
+
this.showNotification('AirPlay not supported');
|
|
7235
|
+
}
|
|
7236
|
+
}
|
|
7148
7237
|
stopCasting() {
|
|
7149
7238
|
try {
|
|
7150
7239
|
const castNs = window.cast;
|