Ich habe eine App mit Cordova und der Web Audio API entwickelt, die es dem Benutzer ermöglicht, Kopfhörer anzuschließen, das Telefon gegen ihr Herz zu drücken und ihren eigenen Herzschlag zu hören.AudioContext.createMediaStreamSource Alternative für iOS?
Dies geschieht mithilfe von Audio-Filter-Knoten.
//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);
}
Es läuft gut, wenn ich auf Android bereitstellen, aber es scheint, dass die meisten dieser Funktionen nicht auf mobilen iOS-Browsern verfügbar sind.
Ich habe getUserMedia-Funktion mit der iosRTC plugin machen, aber CreateMediaStreamSource ist immer noch "keine Funktion."
Also, ich bin auf der Suche nach einer Alternative zu der Web-Audio-API, die Frequenzen herausfiltern kann, oder wenn es Plugins gibt, die ich verwenden könnte, wäre das perfekt.
Haben Sie das herausgefunden? Ist es möglich, dies mit Cordova zu tun, ohne nativ zu werden? Ich habe gerade das cordova-plugin-iosrtc implementiert, um auf Live-Daten vom Mikrofon zugreifen zu können und stehe jetzt hier fest .... –
Sorry für die super späte Antwort. Nein, ich konnte keine Lösung finden, ohne nativ zu werden. Ich habe die [this] (http://theamazingaudioengine.com/) Engine in der nativen App verwendet, wenn das irgendjemandem nutzt. –