Ciao Sto lavorando su WebAudio API. Ho letto il collegamento HTML5 Web Audio API, porting from javax.sound and getting distortion ma non ho trovato una buona qualità come nell'API java. Ricevo i dati PCM dal server nei byte firmati. Quindi devo cambiarlo in formato a 16 bit. per cambiare sto usando (firstbyte < < 8 | secondbyte) ma non riesco a ottenere una buona qualità del suono. c'è qualche problema nella conversione o in qualsiasi altro modo per ottenere una buona qualità del suono?riprodurre dati pcm da webAudio API
7
A
risposta
4
L'API Web Audio utilizza float con segno a 32 bit da -1 a 1, quindi è quello che visualizzerò (si spera) come fare, piuttosto che a 16 bit come menzionato nella domanda.
Assumendo la matrice di campioni si chiama samples
e vengono memorizzati come complimento 2 di da -128 a 127, credo che questo dovrebbe funzionare:
var floats = new Float32Array(samples.length);
samples.forEach(function(sample, i) {
floats[i] = sample < 0 ? sample/0x80 : sample/0x7F;
});
allora si può fare qualcosa di simile:
var ac = new webkitAudioContext()
, ab = ac.createBuffer(1, floats.length, ac.sampleRate)
, bs = ac.createBufferSource();
ab.getChannelData(0).set(floats);
bs.buffer = ab;
bs.connect(ac.destination);
bs.start(0);
+0
Penso che manchi "bs.buffer = ab;" – CpnCrunch
Problemi correlati
- 1. Come riprodurre dati/buffer PCM usando solo AVAudioPlayer o AVPlayer?
- 2. Frequenza di campionamento API WebAudio
- 3. Come posso riprodurre il file pcm
- 4. Ottenere dati PCM di HLS da AVPlayer
- 5. Non riprodurre suoni da stream_url API SoundCloud
- 6. Estrazione dei dati di ampiezza da PCM lineare su iPhone
- 7. Utilizzo dei servizi di coda audio per riprodurre i dati PCM tramite una connessione socket
- 8. Come posso ottenere dati di frequenza da PCM tramite FFT
- 9. Usa (Python) Gstreamer per decodificare l'audio (per dati PCM)
- 10. Conversione da PCM a AAC utilizzando mediacodec
- 11. PCM Web Audio Api Javascript - Sto ricevendo suoni distorti
- 12. File da codificare in formato Android da PCM a Ulaw
- 13. Estrazione del canale audio da Linear PCM
- 14. Firefox WebAudio createMediaElementSource non funzionante
- 15. iOS: riproduzione di buffer PCM da un flusso
- 16. Come registrare qualcosa di diverso da Linear PCM su iPhone
- 17. Come ottenere la frequenza dai dati PCM in java - FFT
- 18. Disinserimento dati da WordPress API (wp-json)
- 19. AudioRecord - scrittura file PCM
- 20. Byte PCM Android
- 21. WebAudio: come funziona timeConstant in setTargetAtTime?
- 22. Riprodurre uno spider Scrapy sui dati memorizzati
- 23. codice semplice per calcolare la frequenza a Live Mic audio utilizzando WebAudio API
- 24. Possiamo riprodurre solo audio utilizzando youtube api per iPhone
- 25. Chrome Extension tabCapture API Stream audio da riprodurre in HTML Pagina
- 26. Come riprodurre video MP4 da Youtube?
- 27. UILocalNotification riprodurre suono da documenti di app
- 28. riprodurre l'audio da uno streaming in Android
- 29. riprodurre audio da Internet utilizzando AVAudioPlayer
- 30. Come riprodurre la suoneria selezionata da RingtonePreference
I frammenti di codice sono sempre utili. – ebidel
qualcuno può dirmi come convertire la matrice di byte firmati in Float32Array? – user894554
Non troppo orgoglioso di revocare questo, ma questa è una buona domanda, dato che la documentazione ufficiale salta la parte del gioco PCM, che sarebbe la funzione diretta, e si focalizza su decodeAudioData(), che è più un 'helper'. –