起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: keyours

[结贴] 录音音频问题

  [复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-5-19 10:50:37 | 显示全部楼层
java调试看看为什么不执行啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
 楼主| 发表于 2017-5-19 13:34:52 | 显示全部楼层
本帖最后由 keyours 于 2017-5-19 13:38 编辑

已经上传了,请结贴。
123.jpg
789.jpg




回复 支持 反对

使用道具 举报

22

主题

80

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
QQ
发表于 2017-5-22 12:51:16 | 显示全部楼层
keyours 发表于 2017-5-19 13:34
已经上传了,请结贴。

哥们,你调用系统的录音机,这样不就出现系统录音机的界面了,代码能否放出来看看呢
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
 楼主| 发表于 2017-5-22 14:16:08 | 显示全部楼层

录音音频问题

本帖最后由 keyours 于 2017-5-22 14:30 编辑

目前录音有两种方式:

1,一种就是利用Media对象定义进行录音但是目前插件方法(this.mediaRec.getCurrentPosition()却始终找不到具体的路径。。
    我尝试结合filepath插件来找到本机录音的文件(如下),最后进行上传。
require("cordova!cordova-plugin-media");          //利用Media录制插件
require("cordova!cordova-plugin-filepath");       //读取文件
目前也尝试过以下面的这种方式获取文件,但没有看到效果,希望有高手可以研究下这种方式,因为这种可以改成像微信那种按住录音的效果。
  1. // 获取文件
  2.                 Model.prototype.getRecordFile = function(path) {
  3.                         var me = this;
  4.                         var filePath = path;
  5.                         
  6.                         //dirEntry为file.wav文件所在的根目录
  7.                         resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function(fileEntry) {
  8.                                 dirEntey.getFile(audioName, {}, function(fileEnter) {
  9.                                         // 获取文件入口
  10.                                         fileEntry.file(function(file) {

  11.                                                 // 读取文件
  12.                                                 var reader = new FileReader();
  13.                                                 reader.onloadend = function() {

  14.                                                         console.log(this.result);
  15.                                                 };
  16.                                                 reader.readAsDataURL(file);
  17.                                                 
  18.                                         }, errorHandler);
  19.                                        
  20.                                 }, errorHandler);
  21.                                 

  22.                             function onSuccess(fileEntry) {
  23.                                         console.log(fileEntry.name);
  24.                                 }
  25.                                 window.resolveLocalFileSystemURI(file, onSuccess, onError);        // 获取文件根目录系统                                                        

  26.                         }, errorHandler);
  27.                 };
复制代码



2,目前为了满足需求,就是调用系统自带的录音机这样就不能自己定义界面,可以取到路径进行上传。如下
     require("cordova!cordova-plugin-media-capture");  //本机的录音功能
  1. //****************************************************************************************************************//
  2.         // 系统自带的录音机录音
  3.         Model.prototype.button2Click = function(event) {
  4.                 var data = this.comp("fileData");               
  5.                                 
  6.                 // 开始录音(最长录制时间:15秒)
  7.         navigator.device.capture.captureAudio(onSuccess, onError, {duration: 3600});


  8.                 // 录制成功
  9.                 var me = this;
  10.                 function onSuccess(mediaFiles) {
  11.                         var i, path, len;
  12.                         // 遍历获取录制的文件(iOS只支持一次录制一个视频或音频)
  13.                         for (i = 0, len = mediaFiles.length; i < len; i += 1) {
  14.                                 console.log(mediaFiles);
  15.                                 path = mediaFiles[i].fullPath;
  16.                                 mediaFiles[i].name = justep.Date.toString(new Date(), "yyyyMMddhhmmss") + ".wav";                        
  17.                                 alert("录制成功!\n\n" + "文件名:" + mediaFiles[i].name + "\n" +
  18.                                                         "大小:" + mediaFiles[i].size + "\n\n" +
  19.                                                         "localURL地址:" + mediaFiles[i].localURL + "\n\n" +
  20.                                                         "fullPath地址:" + path);
  21.                                                         
  22.                
  23.                                 data.newData({
  24.                                         index : 0
  25.                                 });
  26.                                 data.setValue("filePath", path);
  27.                                 data.setValue("fileName", mediaFiles[i].name);
  28.                                 data.setValue('createTime', justep.Date.toString(new Date(mediaFiles[i].lastModifiedDate), justep.Date.DEFAULT_FORMAT));
  29.                                 me.comp('fileOutput').set({
  30.                                    value : "成功:" + path
  31.                             });
  32.                             me.newData = true;               

  33.                          // 上传文件到服务器
  34.                                  alert("上传文件名:"+mediaFiles[i].name);
  35.                                  me.uploadFile(mediaFiles[i]);                 
  36.                         }                                

  37.                         data.newData({
  38.                                 index : 0
  39.                         });

  40.                         data.setValue("fileName", mediaFiles[i].name); // 文件名
  41.                         data.setValue("createTime", justep.Date.toString(new Date(), justep.Date.DEFAULT_FORMAT));// 开始时间
  42.                         data.setValue("timeLen", this.timeLen);// 录音时长
  43.                         data.setValue("filePath", path);
  44.                         alert(path);
  45.                 }

  46.         
  47.                 //录制失败
  48.        function onError(error) {
  49.           alert('录制失败!错误码:' + error.code);
  50.           var msg = 'An error occurred during capture: ' + error.code;
  51.           navigator.notification.alert(msg, null, 'Uh oh!');
  52.        }
  53.         };

  54.         

  55.     // 前端传参上传
  56.         Model.prototype.uploadFile = function(mediaFile) {
  57.                 var ft = new FileTransfer(), path = mediaFile.fullPath, name = mediaFile.name;
  58.                 var options = new FileUploadOptions(); // 文件参数选项
  59.                     options.fileKey = "fileAddRecord"; //设置表单名
  60.                     options.fileName = mediaFile.name; // imageURI.substr(imageURI.lastIndexOf('/')+ 1);


  61.                 // 如果是图片格式,就用image/jpeg,其他文件格式上官网查API
  62.                 //                video/3gpp
  63.                 //                video/quicktime
  64.                 //                image/jpeg
  65.                 //                audio/amr
  66.                 //                audio/wav
  67.                 options.mimeType = "file";
  68.                
  69.                 // 这里的uri根据自己的需求设定,是一个接收上传图片的地址
  70.                 var uri = encodeURI("http://172.16.3.133:8080/baas/upload/upload/uploadFile?userID=admin");  //包名+类名+方法
  71.                     alert(uri);


  72.                 options.chunkedMode = false;
  73.                 var params = new Object();
  74.                     params.id = "123";
  75.                     params.name = "test";
  76.                     options.params = params;

  77.                 function success(result) {
  78.                         // navigator.notification.progressStop();
  79.                         alert("文件上传成功" + JSON.stringify(result));
  80.                         navigator.notification.alert("文件上传成功!", null, "提醒");
  81.                 }

  82.                 function fail(message) {
  83.                         // 关闭进度条
  84.                         //navigator.notification.progressStop();
  85.                         alert("文件上传失败:" + JSON.stringify(message));
  86.                 }

  87.                 // 上传回调
  88.                 ft.onprogress = showUploadingProgress;
  89.                  //navigator.notification.progressStart("提醒", "当前上传进度");
  90.                 ft.upload(path, uri, success, fail, options);  // 开始上传
  91.         };

  92.         // 显示上传进度
  93.         function showUploadingProgress(progressEvt) {
  94.                 if (progressEvt.lengthComputable) {
  95.                         navigator.notification.progressValue(Math.round((progressEvt.loaded / progressEvt.total) * 100));
  96.                 }
  97.         }
复制代码

回复 支持 反对

使用道具 举报

6

主题

22

帖子

50

积分

初级会员

Rank: 2

积分
50
QQ
发表于 2017-9-25 14:38:03 | 显示全部楼层
keyours 发表于 2017-5-17 18:11
我目前是调用的手机自带的录音机处理的。但是到上传的时候如下的错误,帮忙看下。。

请求的路径如果是在BI ...

楼主你好。我开发也遇到了你类似的问题,想知道你的录音的文件路径获取到了吗?怎样获取到的啊,能不能给说一下
回复 支持 反对

使用道具 举报

6

主题

22

帖子

50

积分

初级会员

Rank: 2

积分
50
QQ
发表于 2017-9-25 14:38:20 | 显示全部楼层
keyours 发表于 2017-5-17 18:11
我目前是调用的手机自带的录音机处理的。但是到上传的时候如下的错误,帮忙看下。。

请求的路径如果是在BI ...

楼主你好。我开发也遇到了你类似的问题,想知道你的录音的文件路径获取到了吗?怎样获取到的啊,能不能给说一下
回复 支持 反对

使用道具 举报

72

主题

291

帖子

1158

积分

金牌会员

Rank: 6Rank: 6

积分
1158
QQ
 楼主| 发表于 2017-9-26 10:34:06 | 显示全部楼层
建森 发表于 2017-9-25 14:38
楼主你好。我开发也遇到了你类似的问题,想知道你的录音的文件路径获取到了吗?怎样获取到的啊,能不能给 ...

看24楼的回复。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-26 04:01 , Processed in 0.078345 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表