J'ai eu quelques problèmes avec PCM Audio sur le navigateur. L'audio PCM provient d'un périphérique Android avec protocole udp et est sauvegardé sur le serveur en tant que * .rawLecture PCM avec javascript
J'ai essayé sans succès de lire ce fichier enregistré avec l'aide de webaudioapi. En utilisant le code suivant, me joue un son effrayant avec le bruit blanc:
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
audioCtx.sampleRate = 16000;
// Stereo
var channels = 1;
// Create an empty two second stereo buffer at the
// sample rate of the AudioContext
var frameCount = audioCtx.sampleRate * 10.0;
var myAudioBuffer = audioCtx.createBuffer(channels, frameCount, audioCtx.sampleRate);
var req = new XMLHttpRequest();
req.open('GET', "example.raw", false);
req.overrideMimeType('text\/plain; charset=x-user-defined');
req.send(null);
function play(){
for (var channel = 0; channel < channels; channel++) {
var nowBuffering = myAudioBuffer.getChannelData(channel,16,16000);
for (var i = 0; i < frameCount; i++) {
// audio needs to be in [-1.0; 1.0]
// for this reason I also tried to divide it by 32767
// as my pcm sample is in 16-Bit. It plays still the
// same creepy sound less noisy.
nowBuffering[i] = (req.responseText.charCodeAt(i) & 0xff;
}
}
// Get an AudioBufferSourceNode.
// This is the AudioNode to use when we want to play an AudioBuffer
var source = audioCtx.createBufferSource();
// set the buffer in the AudioBufferSourceNode
source.buffer = myAudioBuffer;
// connect the AudioBufferSourceNode to the
// destination so we can hear the sound
source.connect(audioCtx.destination);
// start the source playing
source.start();
}
Il joue un tel son que je suis non identifiable ne sais pas si elle joue le fichier pcm que je supposé qu'il a à faire. Je suppose qu'il doit faire quelque chose avec le fichier pcm. Le fichier PCM a un taux d'échantillonnage de 16 kHz, 16 bits par échantillon et un seul canal ou plutôt mono-canal.
Quelqu'un a-t-il le même problème ou a-t-il des suggestions pour résoudre mon problème?
Je cherche depuis quelques jours une solution et apprécie toute aide.
Il y avait une erreur dans ma solution. J'ai soumis un correctif et ajouté un exemple. – Locoluis
Je l'essaie avec votre exemple. Il ne fonctionne toujours pas ...:/ Pouvez-vous essayer de jouer ce cru avec votre exemple? http://taxameter.esy.es/example.raw –
Ok, j'ai tout faux, en fournissant tous les autres cadres. Mes exemples ont fonctionné parce qu'ils avaient des données sans heurts. J'ai mis à jour la réponse et l'exemple de travail. De plus, inutile d'utiliser ou de jouer avec 'audioCtx.sampleRate'. – Locoluis