私はCordovaとWeb Audio APIを使って、ヘッドホンを差し込んで、心臓に向かって電話を押し、自分のハートビートを聞くことができるアプリを開発しました。iOSのAudioContext.createMediaStreamSourceの代替ですか?
これは、オーディオフィルタノードを使用して行います。
//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);
}
Androidにデプロイするとうまく動作しますが、これらの機能のほとんどはiOSモバイルブラウザでは利用できないようです。
私はiosRTC pluginを使用してgetUserMedia関数を作成することができましたが、createMediaStreamSourceはまだ「関数ではありません」です。
私はWeb Audio APIの代わりに周波数をフィルターに掛けることができますが、私が使用できるプラグインがあれば完璧です。
これを把握しましたか?ネイティブに行かずにコードワでこれを行うことは可能ですか?私はちょうどcordova-plugin-iosrtcを実装して、マイクからのライブデータにアクセスできるようになりました。ここにこだわっています。 –
超遅れて返事を申し訳ありません。いいえ、私はネイティブに行かずに解決策を見つけることができませんでした。誰にでも使用できるなら、ネイティブアプリで[this](http://theamazingaudioengine.com/)エンジンを使用して終了しました。 –