Domanda

Sto cercando di fare un sito web pratica chitarra, e una funzionalità critica è quello di un ciclo su file mp3 molto brevi (tempo di pochi secondi), con assolutamente zero gap in mezzo. Ad esempio, potrebbe una progressione di accordi a 4 misure a lungo, e voglio permettere all'utente di un ciclo su cosa senza problemi.

Ho provato ad utilizzare il tag HTML5 <audio> con l'attributo loop. Google Chrome dà un piccolo spazio tra le anse, ma grande abbastanza per essere totalmente inaccettabile per il mio scopo. Non ho ancora testato gli altri browser, ma credo che non funzionerà.

Una possibile soluzione è quella di utilizzare ffmpeg per ripetizioni flusso lo stesso audio come mp3. Tuttavia, questo costa un sacco di banda.

Per quanto mi riguarda usare Audacity per ciclo senza lacune, ma purtroppo Audacity non ha una versione web.

Quindi, hai qualche idea di come mi è consentito un ciclo su un mp3 in un browser con gap pari a zero? Io preferisco soluzioni non-Flash, ma se non altro funziona Userò Flash.

Modifica Grazie per tutti i vostri suggerimenti. Flash scopre di lavorare decentemente. Ho fatto un giocattolo demo http://vmlucid.lcm.hk/~netvope /audio/flash.html . Con mia grande sorpresa (che uso per associare Flash con divoratore di risorse e browser si blocca solo), Flash e ActionScript sono piuttosto ben progettato e facile da usare. Mi ci sono voluti solo 3 ore per il mio primo progetto Flash:)

È stato utile?

Soluzione

in Flash AS3 è possibile estrarre i dati audio con computeSpectrum () e dare al vostro oggetto suono esattamente quando è necessario ( SampleDataEvent viene licenziato).

Altri suggerimenti

Dai un'occhiata alla questa pagina . L'ascolto per un po 'l'utilizzo di Google Chrome 7, ho trovato Metodo 1 funziona decentemente, mentre Metodo 3 dà i risultati migliori, anche se è un po' di hack. In definitiva, tutti i browser funzionano in modo diverso, soprattutto perché HTML5 non è ancora ultimato. Se possibile, si dovrebbe optare per una versione di Flash, che penserei darebbe il miglior ciclo.

Io non sono sicuro di come questo funzionerà, ma se tu conoscessi il ciclo è durato 800 millisecondi - si potrebbe avere il browser chiamata il metodo di esecuzione ogni 800ms ... ancora non sarebbero garantiti per essere comunque perfetta. Non credo che il browser è nativamente in grado di erogare audio affidabile looping a questo punto.

setInterval(function(){
  document.getElementById("loop").play();
}, 800);

Si dice che il modo migliore per farlo tirare fuori questo in più di moda senza pause per l'uso a più tag audio e si alternano tra di loro.

o controllare questa utility: http://www.compuphase.com/mp3/mp3loops. htm ho usato con successo per i miei progetti in flash in cui la musica doveva essere in loop senza lacune, e il 99% del tempo ha funzionato. Ci vuole WAV come input.
Fondamentalmente si tratta di una sorta di front-end per encoder LAME MP3, che utilizza tali impostazioni per evitare le lacune che appaiono. Non funzionerà sugli effetti sonori molto brevi (meno di 0,5 secondi credo).
Dopo tutto quello che dovete fare è usare:

var sound:Sound = new MySoundEffect();
sound.play(0, 1000);

e sarà ciclo mille volte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top