これがないドキュメントの最新バージョンです!
Click here for the latest released version.
capture.captureAudio
オーディオ録音アプリを起動し、キャプチャーしたファイルの情報を返します。
navigator.device.capture.captureAudio(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureAudioOptions options]
);
概要
このメソッドは、デバイスのデフォルトのオーディオ録音アプリを使用して、オーディオをキャプチャーするための非同期操作を開始します。この操作はユーザーに、単一セッションで複数のビデオのキャプチャーをユーザーに許可します。
キャプチャー操作は、ユーザーがオーディオ録音アプリを終了するか、 CaptureAudioOptions の中の limit パラメーターで指定された最大録音回数に達した場合に終了します。もし limit パラメーターが指定されていない場合は、デフォルト値である1が使用され、キャプチャー操作はユーザーが1度オーディオを録音した後に終了します。
キャプチャー操作が終了した時、それぞれのオーディオ録音ファイル情報が書かれた MediaFile オブジェクトの配列を伴った CaptureCB コールバック関数を呼び出します。もしオーディオがキャプチャーされる前にユーザーによって操作が終了されたら、 CaptureError.CAPTURE_NO_MEDIA_FILES
エラーコードを持つ CaptureError オブジェクトを伴った CaptureErrorCB コールバック関数が呼び出されます。
サポートされているプラットフォーム
- Android
- BlackBerry WebWorks (OS 5.0 以上)
- iOS
- Windows Phone 7 (Mango)
使用例
// capture コールバック関数
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// ファイルを使用した処理
}
};
// capture エラーコールバック関数
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// オーディオキャプチャーを開始
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit:2});
詳細な使用例
<!DOCTYPE html>
<html>
<head>
<title>オーディオキャプチャー</title>
<script type="text/javascript" charset="utf-8" src="cordova-1.8.1.js"></script>
<script type="text/javascript" charset="utf-8" src="json2.js"></script>
<script type="text/javascript" charset="utf-8">
// キャプチャー操作の正常終了時の処理
//
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
}
// エラー発生時の処理
//
function captureError(error) {
var msg = 'キャプチャー中にエラーが発生しました: ' + error.code;
navigator.notification.alert(msg, null, 'エラー');
}
// ボタンがクリックされた場合の処理
//
function captureAudio() {
// デバイスのオーディオ録音アプリを起動し、
// ユーザーに2つまでオーディオの録音を許可する
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit: 2});
}
// ファイルをサーバーにアップロード
function uploadFile(mediaFile) {
var ft = new FileTransfer(),
path = mediaFile.fullPath,
name = mediaFile.name;
ft.upload(path,
"http://my.domain.com/upload.php",
function(result) {
console.log('アップロード成功: ' + result.responseCode);
console.log(result.bytesSent + ' バイト送信');
},
function(error) {
console.log('ファイルのアップロードに失敗 ' + path + ': ' + error.code);
},
{ fileName: name });
}
</script>
</head>
<body>
<button onclick="captureAudio();">オーディオキャプチャー</button> <br>
</body>
</html>
BlackBerry WebWorks に関する注意点
- Cordova for BlackBerry WebWorks は、オーディオ録音のために RIM より提供されている Voice Notes Recorder の起動を試みます。デベロッパーは、もしアプリがインストールされていない場合は CaptureError.
CAPTURE_NOT_SUPPORTED
エラーを受け取ります。
iOS に関する注意点
- iOS にはデフォルトのオーディオ録音アプリがないため、シンプルなユーザーインターフェースが提供されます。
Windows Phone 7 に関する注意点
- Windows Phone 7 にはデフォルトのオーディオ録音アプリがないため、シンプルなユーザーインターフェースが提供されます。