Ho sviluppato un'app utilizzando Cordova e l'API Web Audio, che consente all'utente di collegare cuffie, premere il telefono contro il cuore e ascoltare il proprio battito cardiaco.AudioContext.createMediaStreamSource alternativa per iOS?
Fa ciò utilizzando i nodi del filtro audio.
//Setup userMedia
context = new (window.AudioContext||window.webkitAudioContext);
navigator.getUserMedia = (navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
navigator.getUserMedia(
{audio:true},
userMediaSuccess,
function(e) {
alert("error2 " + e.message);
});
function userMediaSuccess(stream)
{
//set microphone as input
input = context.createMediaStreamSource(stream);
//amplify the incoming sounds
volume = context.createGain();
volume.gain.value = 10;
//filter out sounds below 25Hz
lowPass = context.createBiquadFilter();
lowPass.type = 'lowpass';
lowPass.frequency.value = 25;
//filter out sounds above 425Hz
highPass = context.createBiquadFilter();
highPass.type = 'highpass';
highPass.frequency.value = 425;
//apply the filters and amplification to microphone input
input.connect(lowPass);
input.connect(highPass);
input.connect(volume);
//send the result of these filters to the phones speakers
highPass.connect(context.destination);
lowPass.connect(context.destination);
volume.connect(context.destination);
}
Funziona benissimo quando schiero ad Android, ma sembra la maggior parte di queste funzionalità non sono disponibili su browser mobili iOS.
Sono riuscito a rendere la funzione getUserMedia utilizzando lo iosRTC plugin, ma createMediaStreamSource è ancora "non una funzione".
Quindi, sto cercando un'alternativa all'API Web Audio in grado di filtrare le frequenze, o se ci sono plugin che potrei usare, sarebbe perfetto.
Hai capito? È possibile farlo con cordova senza diventare nativo? Ho appena implementato il plugin cordova-iosrtc per poter accedere ai dati in tempo reale dal microfono e ora sono bloccato qui ... –
Ci scusiamo per la risposta super tardiva. No, non sono riuscito a trovare una soluzione senza diventare nativo. Ho finito per usare il motore [this] (http://theamazingaudioengine.com/) nell'app nativa, se questo è utile a qualcuno. –