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オブジェクトのメソッドを利用します。