Tutorialチュートリアル
音声を録音するには
音声を録音するには、Javascriptを記述します。
FileSystemオブジェクトとMediaオブジェクトの組み合わせで実現出来ます。
Javascript
<a id="object">オブジェクト</a><br />
<a id="release">解放</a><br />
<a id="record">録音</a><br />
<a id="stop">停止</a><br />
<script type="text/javascript" charset="utf-8" src="/Joomla/applican-0.12.2.js"
<script type="text/javascript" charset="utf-8"><!--
(function() {
object = function object() {
//レコーダーオブジェクト作成用メソッド呼び出し
applican.media.createMediaRecorder("file://...", objectSuccess, objectFailure);
};
//レコーダーオブジェクト作成成功時のコールバック
function objectSuccess(result) {
recorder = result;
alert("success");
}
//レコーダーオブジェクト作成失敗時のコールバック
function objectFailure(error) {
alert(error);
}
var recorder;
release = function release() {
//レコーダーのリソース解放用メソッド呼び出し
recorder.release(releaseSuccess, releaseFailure);
};
//レコーダーのリソース解放成功時のコールバック
function releaseSuccess() {
alert("success");
recorder = null;
}
//レコーダーのリソース解放失敗時のコールバック
function releaseFailure(error) {
alert(error);
recorder = null;
}
record = function record() {
//ファイルシステムを取得
applican.requestFileSystem(LocalFileSystem.PERSISTENT, 0, requestRecordingFilesystemSuccess, requestRecordingFilesystemError);
};
//ファイルシステムを取得成功時のコールバック
function requestRecordingFilesystemSuccess() {
//録音を開始用メソッド呼び出し
recorder.record({}, recordSuccess, recordFailure);
}
//ファイルシステムを取得失敗時のコールバック
function requestRecordingFilesystemError() {
alert("error");
}
//録音を開始成功時のコールバック
function recordSuccess() {
alert("success");
}
//録音を開始失敗時のコールバック
function recordFailure(error) {
alert(error);
}
//録音を停止用メソッド呼び出し
stop = function stop() {
recorder.stop(stopSuccess, stopFailure);
}
//録音を停止成功時のコールバック
function stopSuccess() {
alert("success");
}
//録音を停止失敗時のコールバック
function stopFailure(error) {
alert(error);
}
/********************* イベント登録 *********************/
document.addEventListener("deviceready", function() {
// 「オブジェクト」ボタン押下処理
document.getElementById("object").addEventListener("touchend", object, false);
// 「解放」ボタン押下処理
document.getElementById("release").addEventListener("touchend", release, false);
// 「録音」ボタン押下処理
document.getElementById("record").addEventListener("touchend", record, false);
// 「停止」ボタン押下処理
document.getElementById("stop").addEventListener("touchend", stop, false);
}, false);
})();
//-->
</script>
解説
プラットフォームの準備が完了してから、Aタグにオブジェクト作成、リソース解放、録音開始、録音停止のクリックイベントを割り当てています。
録音開始がクリックされたらfileSystem にファイルの作成と、そのファイルに対してMediaオブジェクトを生成し、recorder.recordメソッドで録音を開始しています。
停止、解放はそのMediaオブジェクトのメソッドを利用します。