Cordovaで音声入力する。
UIWebViewではnavigator.mediaDevicesが取得できず、audio inputが出来ない。
cordova-plugin-audioinputを使う。
導入
cordova plugin add [email protected]
cordova plugin add [email protected]
サンプルコードが現時点で最新の1.0.2では動かなかったため、1.0.1を入れた。
Blob形式でデータを取得する流れ
- 公式デモソースが教えてくれる。
Permissionを取る
準備
document.getElementById("startCapture").addEventListener("click", startCapture);
// 送られてくるデータを貯める
var onDeviceReady = function () {
if (window.cordova && window.audioinput) {
initUIEvents();
consoleMessage("Use 'Start Capture' to begin...");
// Subscribe to audioinput events
//
window.addEventListener('audioinput', onAudioInputCapture, false);
window.addEventListener('audioinputerror', onAudioInputError, false);
}
else {
consoleMessage("cordova-plugin-audioinput not found!");
disableAllButtons();
}
};
onAudioInput内部で、音声ストリーミングを取得する
開始
audioinput.start({audioSourceType: 0})
終了
//停止
audioinput.stop();
// waveへ変換する
consoleMessage("Encoding WAV...");
var encoder = new WavAudioEncoder(captureCfg.sampleRate, captureCfg.channels);
encoder.encode([audioDataBuffer]);
consoleMessage("Encoding WAV finished");
var blob = encoder.finish("audio/wav");
Author And Source
この問題について(Cordovaで音声入力する。), 我々は、より多くの情報をここで見つけました https://qiita.com/TakenoriHirao/items/8f56a5cb95a2f0f4d643著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .