Hola, estoy trabajando en la API de WebAudio. Leo el enlace HTML5 Web Audio API, porting from javax.sound and getting distortion pero no obtengo una buena calidad como en la API java. Obtengo datos PCM del servidor en bytes firmados. Entonces tengo que cambiar esto en formato de 16 bits. para cambiar lo estoy usando (firstbyte < < 8 | secondbyte) pero no puedo obtener buena calidad de sonido. ¿Hay algún problema en la conversión o en cualquier otra forma de obtener buena calidad de sonido?reproducir datos pcm por web API de audio
7
A
Respuesta
4
La API de Web Audio utiliza flotantes con signo de 32 bits de -1 a 1, así que eso es lo que voy a mostrar (con suerte) cómo hacerlo, en lugar de 16 bits como mencionó en la pregunta.
Asumiendo que su conjunto de muestras se llama samples
y se almacenan como complemento de 2 desde -128 y 127, creo que esto debería funcionar:
var floats = new Float32Array(samples.length);
samples.forEach(function(sample, i) {
floats[i] = sample < 0 ? sample/0x80 : sample/0x7F;
});
entonces usted puede hacer algo como esto:
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
Creo que te estás perdiendo "bs.buffer = ab;" – CpnCrunch
Cuestiones relacionadas
- 1. Uso de Audio Queue Services para reproducir datos PCM a través de una conexión de socket
- 2. ¿Cómo puedo reproducir audio en reversa con la API de audio web?
- 3. Web Audio API WaveShaperNode
- 4. PCM Raw Bytes [] Para audio en Android
- 5. ¿Recibir arreglos de bytes de audio con HTML5 Audio API?
- 6. Convierta programáticamente audio G729 a WAV PCM
- 7. ¿Cómo editar datos de audio PCM sin procesar sin una biblioteca de audio?
- 8. Transmisión de datos de audio en HTML5
- 9. Reproducir audio con Python
- 10. Reproducir audio con Node.JS
- 11. Web Audio API reanudar desde la pausa
- 12. Grabar y reproducir audio simultáneamente
- 13. ¿Hay una biblioteca que abstraiga Web Audio API y Mozilla Audio Data API para leer audio en bruto (MP3, ogg)
- 14. ¿Puede ffmpeg convertir audio de PCM sin formato a WAV?
- 15. No hay sonido en iOS 6 Web Audio API
- 16. Integral html5 Audio API
- 17. cómo reproducir archivos de audio en android
- 18. reproducir audio de Internet usando AVAudioPlayer
- 19. Reproducir varios archivos de audio con AVPlayer
- 20. Silverlight 4 - codificación de datos PCM desde el micrófono
- 21. Elemento de audio HTML para reproducir?
- 22. Reproducir y grabar audio al mismo tiempo
- 23. Grabar y reproducir audio simultáneamente en iOS
- 24. Configuración de playbackRate en el elemento de audio conectado a audio web api
- 25. Java audio converter api
- 26. Cómo reproducir un audio de fondo en varias páginas HTML.?
- 27. Reproducir un clip de audio en una llamada en curso
- 28. Web Audio API: noteOn after noteOff not working?
- 29. cómo jugar datos raw pcm en java
- 30. HTML5 Audio iPAD, ¿No se puede reproducir el archivo de audio?
Los fragmentos de código siempre son útiles. – ebidel
¿alguien puede decirme cómo convertir una matriz de bytes firmada a Float32Array? – user894554
No demasiado orgulloso para votar esto, pero esta es una buena pregunta, ya que la documentación oficial se salta la parte PCM del juego, que sería la función directa, y se enfoca en decodeAudioData(), que es más un 'ayudante'. –