angularjs+ngCordova 手机录音

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代码

<?php
move_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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值