Cordova:媒体插件录制音频空文件

Cordova:媒体插件录制音频空文件,cordova,Cordova,我正在使用cordova插件媒体录制音频。我将路径设置为cordova.file.externalDataDirectory 我有以下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-

我正在使用
cordova插件媒体
录制音频。我将路径设置为
cordova.file.externalDataDirectory

我有以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

以下是我录制音频的方式:

let src = app.path + new Date().getTime() + app.extension;

$scope.mediaRec = new Media(src,
    (data) => {
        let img = '<div><audio type="audio/aac" controls controlsList="nodownload"><source src="' + src + '"></audio><br/></div><div><br/></div>';
        document.execCommand('insertHTML', false, img);
    },            
    (error) => {});

$scope.mediaRec.startRecord();

$timeout(function() {
    $scope.mediaRec.stopRecord();
    $scope.mediaRec.release();
},5000);
让src=app.path+new Date().getTime()+app.extension;
$scope.mediaRec=新媒体(src,
(数据)=>{
设img='

'; document.execCommand('insertHTML',false,img); }, (错误)=>{}); $scope.mediaRec.startRecord(); $timeout(函数(){ $scope.mediaRec.stopRecord(); $scope.mediaRec.release(); },5000);
当我检查我的存储时,文件正在创建中,但文件是空的。它的大小为0字节。它不能播放

我使用了不同的文件类型
.aac、.mp3、.3gp、.wav
,但它们都是相同的


如何成功保存文件?

我目前使用以下方法在Cordova和VueJs中录制语音:

async startRecording() {
  const audioFileName = `${uid()}.mp3`;
  let fileSrc;
  try {
    fileSrc = await new Promise((resolve, reject) => {
      // eslint-disable-next-line no-undef
      requestFileSystem(LocalFileSystem.PERSISTENT, 0, fileSystem => {
        fileSystem.root.getFile(audioFileName, {
          create: true,
          exclusive: false,
        }, fileEntry => {
          resolve(fileEntry.toURL());
        }, reject);
      }, reject);
    });
  } catch (e) {
    this.$logger.catchError(e);
    return;
  }
  this.fileSrc = fileSrc;
  // this.$logger.debug('fileSrc', fileSrc)
  // eslint-disable-next-line no-undef
  this.media = new Media(fileSrc, () => {
    // this.$logger.debug('media success', this.media)
  }, err => {
    this.$logger.debug('media error', err.message);
  });
  this.media.startRecord();
  this.state = 'recording';
},
stopRecording() {
  this.media.stopRecord();
  if (this.autoPlay) {
    this.media.play();
  }
  this.state = 'finish';
},
finishRecording() {
  this.$emit('input', this.fileSrc);
  this.state = 'start';
  this.media.release();
  this.media = null;
},

如您所见,首先,我通过
requestFileSystem
保留一个文件路径,然后将其传递给录制插件<代码>新媒体(fileSrc…

我放弃使用
cordova插件媒体
,我现在正在使用
cordova插件音频输入
。我一直在努力寻找出路。永不放弃,总会有出路;-)