Mettiamo subito alla prova la mia voce sul tuo progetto.
Compila il modulo qui sotto o inviami direttamente il tuo script. Sarò felice di fornirti una breve demo personalizzata e un preventivo dettagliato per le tue esigenze di comunicazione.
La consegna standard avviene entro 24/48 ore dalla conferma dello script. Per progetti urgenti o comunicazioni broadcast, è possibile concordare una consegna prioritaria in giornata.
Certamente. Compilando il modulo qui a fianco e allegando una parte del tuo script, sarò lieto di fornirti una demo gratuita di pochi secondi. Questo ti permetterà di valutare l’intenzione e il tono prima di procedere con l’ordine completo.
La soddisfazione del cliente è prioritaria. Eventuali errori di pronuncia o mancanze rispetto allo script originale vengono corretti gratuitamente. Per cambi di intenzione o modifiche al testo post-registrazione, è prevista una piccola quota di gestione.
Riceverai file audio di qualità Master (WAV a 24-bit / 48kHz), pronti per il mixaggio professionale. Su richiesta, posso fornire anche versioni compresse in MP3 ad alto bitrate (320kbps) per un utilizzo immediato sul web.
*/let currentAudio = null;function controlAudio(btn) {
const track = btn.closest('.luxury-track');
if (!track) return;const audio = track.querySelector('audio');
const progressBar = track.querySelector('.luxury-progress-bar');
const playIcon = btn.querySelector('.icon-play');
const pauseIcon = btn.querySelector('.icon-pause');if (!audio) return;// Ferma l'audio corrente se diverso
if (currentAudio && currentAudio !== audio) {
try { currentAudio.pause(); } catch (e) {}
const otherTrack = currentAudio.closest('.luxury-track');
if (otherTrack) {
const otherPlay = otherTrack.querySelector('.icon-play');
const otherPause = otherTrack.querySelector('.icon-pause');
if (otherPlay) otherPlay.style.setProperty('display', 'block', 'important');
if (otherPause) otherPause.style.setProperty('display', 'none', 'important');
const otherProgress = otherTrack.querySelector('.luxury-progress-bar');
if (otherProgress) otherProgress.style.width = '0%';
}
currentAudio = null;
}// Carica la sorgente SOLO al primo click (supporta data-src)
if (!audio.src || audio.src.trim() === '') {
const src = audio.dataset && audio.dataset.src ? audio.dataset.src : null;
if (src) audio.src = src;
}// Play / Pause con gestione della promise
if (audio.paused) {
const playPromise = audio.play();
if (playPromise !== undefined) {
playPromise.then(() => {
if (playIcon) playIcon.style.setProperty('display', 'none', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'block', 'important');
currentAudio = audio;
}).catch(() => {
// Play bloccato (es. autoplay policy): mantieni stato play
if (playIcon) playIcon.style.setProperty('display', 'block', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'none', 'important');
});
} else {
if (playIcon) playIcon.style.setProperty('display', 'none', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'block', 'important');
currentAudio = audio;
}
} else {
audio.pause();
if (playIcon) playIcon.style.setProperty('display', 'block', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'none', 'important');
currentAudio = null;
}// Aggiungo listener di progresso/ended una sola volta
if (!audio._luxuryListenersAdded) {
audio._luxuryListenersAdded = true;audio.addEventListener('timeupdate', () => {
if (!audio.duration || isNaN(audio.duration)) return;
const percent = (audio.currentTime / audio.duration) * 100;
if (progressBar) progressBar.style.width = percent + '%';
});audio.addEventListener('pause', () => {
// Se preferisci resettare la barra alla pausa, decommenta la riga sotto
// if (progressBar) progressBar.style.width = '0%';
});audio.addEventListener('ended', () => {
if (playIcon) playIcon.style.setProperty('display', 'block', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'none', 'important');
if (progressBar) progressBar.style.width = '0%';
if (currentAudio === audio) currentAudio = null;
});audio.addEventListener('error', () => {
if (playIcon) playIcon.style.setProperty('display', 'block', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'none', 'important');
if (progressBar) progressBar.style.width = '0%';
if (currentAudio === audio) currentAudio = null;
});
}
}
Gestisci Consenso
Per fornire le migliori esperienze, utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Il consenso a queste tecnologie ci permetterà di elaborare dati come il comportamento di navigazione o ID unici su questo sito. Non acconsentire o ritirare il consenso può influire negativamente su alcune caratteristiche e funzioni.
Funzionale
Sempre attivo
L'archiviazione tecnica o l'accesso sono strettamente necessari al fine legittimo di consentire l'uso di un servizio specifico esplicitamente richiesto dall'abbonato o dall'utente, o al solo scopo di effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica.
Preferenze
L'archiviazione tecnica o l'accesso sono necessari per lo scopo legittimo di memorizzare le preferenze che non sono richieste dall'abbonato o dall'utente.
Statistiche
L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici.L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici anonimi. Senza un mandato di comparizione, una conformità volontaria da parte del vostro Fornitore di Servizi Internet, o ulteriori registrazioni da parte di terzi, le informazioni memorizzate o recuperate per questo scopo da sole non possono di solito essere utilizzate per l'identificazione.
Marketing
L'archiviazione tecnica o l'accesso sono necessari per creare profili di utenti per inviare pubblicità, o per tracciare l'utente su un sito web o su diversi siti web per scopi di marketing simili.