Просмотр исходного кода

Mute audio fix 2

Sviluppo_Carrello_Immagini
Lorenzo Pollutri 15 часов назад
Родитель
Сommit
a9e6e55132
3 измененных файлов: 13 добавлений и 22 удалений
  1. +10
    -15
      app/admin/page.tsx
  2. +2
    -6
      components/PublicGrid.tsx
  3. +1
    -1
      types/index.ts

+ 10
- 15
app/admin/page.tsx Просмотреть файл

@@ -149,11 +149,11 @@ export default function AdminDashboard() {
}));
};
const setVolume = (index: number, volume: number) => {
const toggleMuted = (index: number) => {
setIsEditing(prev => ({
...prev,
extraMedia: (prev?.extraMedia || []).map((m, i) =>
i === index ? { ...m, volume } : m
i === index ? { ...m, muted: !m.muted } : m
),
}));
};
@@ -514,7 +514,7 @@ export default function AdminDashboard() {
{video ? 'Video' : 'Image'}
</div>
{video && (
<div className="mt-1 space-y-1.5">
<div className="mt-1 flex flex-wrap gap-x-4 gap-y-1">
<label className="flex items-center gap-2 cursor-pointer">
<input
type="checkbox"
@@ -524,20 +524,15 @@ export default function AdminDashboard() {
/>
<span className="text-sm text-gray-700">Autoplay</span>
</label>
<div className="flex items-center gap-2">
<span className="text-sm text-gray-700 shrink-0">Volume:</span>
<label className="flex items-center gap-2 cursor-pointer">
<input
type="range"
min={0}
max={100}
value={Math.round((item.volume ?? 1) * 100)}
onChange={e => setVolume(i, parseInt(e.target.value, 10) / 100)}
className="flex-1 accent-blue-600"
type="checkbox"
checked={!!item.muted}
onChange={() => toggleMuted(i)}
className="w-4 h-4 text-blue-600 rounded"
/>
<span className="text-xs text-gray-600 w-10 text-right tabular-nums">
{Math.round((item.volume ?? 1) * 100)}%
</span>
</div>
<span className="text-sm text-gray-700">Muted</span>
</label>
</div>
)}
</div>


+ 2
- 6
components/PublicGrid.tsx Просмотреть файл

@@ -20,9 +20,7 @@ function MediaCarousel({
const markPaused = (i: number) => setPlaying(p => { const n = new Set(p); n.delete(i); return n; });

const applyVolume = (v: HTMLVideoElement, item: MediaItem) => {
const desired = item.volume ?? 1;
v.volume = desired;
v.muted = desired === 0;
v.muted = !!item.muted;
};

const togglePlay = (i: number) => {
@@ -194,9 +192,7 @@ function FullscreenViewer({
const markPaused = (i: number) => setPlaying(p => { const n = new Set(p); n.delete(i); return n; });

const applyVolume = (v: HTMLVideoElement, item: MediaItem) => {
const desired = item.volume ?? 1;
v.volume = desired;
v.muted = desired === 0;
v.muted = !!item.muted;
};

const togglePlay = (i: number) => {


+ 1
- 1
types/index.ts Просмотреть файл

@@ -3,7 +3,7 @@ export type CardType = 'INFO_PAGE' | 'EXTERNAL_LINK' | 'IMAGE_GALLERY' | 'SERVIC
export type MediaItem = {
url: string;
autoplay?: boolean; // videos only — start playing as soon as the slide is shown
volume?: number; // videos only — initial volume 0..1 (default 1). Volume === 0 means muted.
muted?: boolean; // videos only — start muted (default: unmuted)
};
export interface Card {


Загрузка…
Отмена
Сохранить