angularjs+ngCordova 手机录音

来源:互联网 发布:sql server入门到精通 编辑:程序博客网 时间:2024/05/01 07:51

1.安装录音插件:cordova plugin add https://github.com/emj365/cordova-plugin-audio-recorder-api
2.安装媒体插件,用来播放录音:cordova plugin add https://github.com/apache/cordova-plugin-media
3.添加FileTransfer插件:cordova plugin add cordova-plugin-file-transfer

.factory('huanxinIonic', function($ionicLoading,$cordovaVibration,$http,$rootScope,Storage,$ionicScrollDelegate,$timeout,$cordovaNativeAudio,$cordovaMedia) {        return {            //发送、接收消息,页面到最底部            viewScroll : function(){                var viewScroll = $ionicScrollDelegate.$getByHandle('messageDetailsScroll');                          $timeout(function() {                        viewScroll.scrollBottom();                    }, 0);            },            //开始录音            startRecord : function(){              window.plugins.audioRecorderAPI.record(function(msg) { // 调用audioRecorderAPI成功              console.log('ok: ' + msg); }, function(msg) { // 调用audioRecorderAPI失败              console.log('ko: ' + msg); },60); // record 60 seconds            },             //停止录音             stopRecord : function(data){                window.plugins.audioRecorderAPI.stop(function(file) {                //录音停止后会返回录音文件的路径,file就是这个路径。 苹果上是.m4a格式的                 var options = new FileUploadOptions();                 options.fileKey = "file";                 options.fileName = file.substr(file.lastIndexOf('/')+1);                options.mimeType = "text/plain";                 var ft = new FileTransfer();                 ft.onprogress = function(progressEvent) {                 //上传中                 console.log("上传中");                 //console.log(progressEvent.loaded);                 };                 ft.upload('file:///'+file, encodeURI("上传地址"),                           function(re){                               var status = JSON.parse(re.response).success;                               if(status){                                    console.log("上传成功");                               }                           }, function(e){                               console.log(JSON.stringify(e));                           }, options);                  //通过 FileTransfer 对象的 abort() 方法可以中断当前进行的上传、下载操作                  //ft.abort();                                                   });             },             //播放录音,音频文件url             playRecord : function(file){                var media = new Media(file);                media.play();             }        }        })

后台PHP代码

<?phpmove_uploaded_file($_FILES["file"]["tmp_name"],    $_SERVER["DOCUMENT_ROOT"]."/uploadFiles/" . $_FILES["file"]["name"]);?>如果move_uploaded_file返回false,就可能是文件夹权限问题解决方案:chmod -R 777 某文件夹的绝对路径

你们看不懂的话可以看看以下2个链接。我也是看了这两个说明才搞出来的
ionic+angularjs+cordova 录音,播放录音:http://www.imooc.com/article/15436
Cordova - fileTransfer插件的使用详解(实现文件上传、下载):http://www.hangge.com/blog/cache/detail_1180.html

原创粉丝点击