<!DOCTYPE html>
<html lang="en">
<head>
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" id="viewport" name="viewport">
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="./js/jquery-1.11.1.js"></script>
<script language="javascript" src="./js/cordova_ios.js" > </script>
<script language="javascript" src="./cordova_plugins.js" > </script>
<style type="text/css">
input{width:200px;height:50px;display:block}
</style>
</head>
<body>
<div class="app">
<h1>Apache Cordova</h1>
<div id="deviceready" class="blink">
<p id="test">操作提示</p><!--这里会显示录音操作中的各个变化-->
<input type="button" value="录音" id="luyin" />
<input type="button" value="录音完成" id="luyin_finish" />
<input type="button" value="录音播放" id="luyin_bofang" />
<input type="button" value="录音上传 " id="luyin_upload" />
</div>
</div>
<script type="text/javascript">
var mediaRec;
var recTimeMax = 10;
var recTime = 0;
var recordFile = "documents://myrecording.wav";
var recordFIlePath='';
document.addEventListener("deviceready", function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, function fail(){});
}, false);
var gotFS = function (fileSystem) {
fileSystem.root.getFile("myrecording.wav",
{ create: true, exclusive: false }, //create if it does not exist
function success(entry) {
recordFIlePath = entry.toURI();
},
function fail() {}
);
};
//开始录音
function recordAudio() {
var src = recordFile;
mediaRec = new Media(src, onSuccess, onError);
// Record audio
mediaRec.startRecord();
// Stop recording after 10 sec
recTime = 0;
var recInterval = setInterval(function() {
recTime = recTime + 1;
if (recTime >= recTimeMax) {
clearInterval(recInterval);
mediaRec.stopRecord();
mediaRec.release();
}
}, 1000);
}
// onSuccess Callback
//
function onSuccess() {
alert('success');
console.log("recordAudio():Audio Success");
}
// onError Callback
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
//==========
//录音完成
function recordFinish() {
recTime = recTimeMax;
}
//播放audio
function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
// success callback
function() {
console.log("playAudio():Audio Success");
},
// error callback
function(err) {
console.log("playAudio():Audio Error: "+err);
});
// Play audio
my_media.play();
}
//\\
//上传
function uloadRecord(){
var win = function (r) {
alert("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
}
var fail = function (error) {
alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
}
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = "myrecording.wav";
options.mimeType = "audio/wav";
var ft = new FileTransfer();
ft.upload(recordFIlePath, encodeURI("http://192.168.1.101/upload_record/index.php"), win, fail, options);
}
//为按钮绑定 touchstart(点击) 事件
$("#luyin").click(function(){
//实例化录音类
recordAudio();
//开始录音
$("#test").html("开始录音");
});
//录音 完成
$('#luyin_finish').click(function(){
recordFinish();
});
//录音 播放
$('#luyin_bofang').click(function(){
playAudio(recordFile);
});
//录音 上传
$('#luyin_upload').click(function(){
uloadRecord()
});
</script>
</body>
</html>
需要添加 cordova 的 file 和 filetransfer 插件