gpt4 book ai didi

cordova - 从 Cordova 媒体插件上传录音

转载 作者:行者123 更新时间:2023-12-01 07:18:38 24 4
gpt4 key购买 nike

我正在尝试上传使用 iOS 上的 Cordova 媒体插件录制的音频文件。
音频文件已创建,我可以播放它们。

但是我找不到从文件系统上传录音的有效解决方案。我的录音代码是:

 record = new Media(src,
// success callback
function () {
console.log("recordAudio():Audio Success");
},

// error callback
function (err) {
console.log("recordAudio():Audio Error: " + err.code);
});

// Record audio
record.startRecord();
//when finished
record.stopRecord();

最佳答案

我发现了如何做到这一点:

在 iOS 上,您必须先添加 Cordova 文件系统插件才能创建新条目。

cordova plugin add org.apache.cordova.file

创建记录文件并设置全局变量 fileURL 和 audioRecord:
    //Prepares File System for Audio Recording
audioRecord = 'record.wav';
onDeviceReady();

function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, gotFS, fail);
}

function gotFS(fileSystem) {
fileSystem.root.getFile(audioRecord, {
create: true,
exclusive: false
}, gotFileEntry, fail);
}

function gotFileEntry(fileEntry) {
fileURL = fileEntry.toURL();
}

开始和停止记录:
 record = new Media(audioRecord,
// success callback
function () {
console.log("recordAudio():Audio Succes: ");
},

// error callback
function (err) {
console.log("recordAudio():Audio Error: " + err.code);
});

// Record audio
record.startRecord();
// Wait
record.stopRecord();

要上传文件,您首先必须添加文件传输插件:
cordova plugin add org.apache.cordova.file-transfer

然后就可以调用这个方法上传记录了:
//Method to upload Audio file to server
var uploadAudio = function () {
var win = function (r) {
console.log("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 = "recordupload.wav";
options.mimeType = "audio/wav";

var ft = new FileTransfer();
ft.upload(fileURL, encodeURI("http://yoururl.com/uploadaudio.php"), win, fail, options);
}

要接收文件,您可以使用此 PHP 脚本:
<?php
// Where the file is going to be placed
$target_path = "records/";

/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['file']['name']);

if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['file']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
echo "filename: " . basename( $_FILES['file']['name']);
echo "target_path: " .$target_path;
}
?>

关于cordova - 从 Cordova 媒体插件上传录音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27756496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com