首页 > 解决方案 > 录制的文件既不保存也不在cordova-plugin-media中播放(错误代码1)

问题描述

我正在使用这个插件: cordova-plugin-media使用离子电容器而不是使用命令的科尔多瓦ionic cap sync

我的代码:

audioFile: MediaObject;
constructor(private media: Media, private plt: Platform, private file: File) {}
ionViewDidEnter() {
    this.plt.ready()
    .then(() => {
      setTimeout(() => {
        this.audioFile = this.media.create(this.file.externalRootDirectory + 'audiofile.mp3');
        this.audioFile.onStatusUpdate.subscribe(status => console.log('status: ', status));
        this.audioFile.onSuccess.subscribe(() => console.log('Action is successful'));
        this.audioFile.onError.subscribe(error => console.log('Error: ', error));
      }, 1000);
    })
    .catch(err => console.log('ready error: ', err));
}

record() {
    // When record button clicked
    this.audioFile.startRecord();
}

stop() {
    // When stop button clicked
    this.audioFile.stopRecord();
    this.audioFile.play();
}

当我单击 Record btn 时,record()执行并输出为:Error: 1当我停止录制时,输出结果是status: 4Action is successful 我希望播放录音或进入audiofile.mp3我的 android 设备的文件管理器,但我没有观察到任何内容。有人可以帮我解决这个问题吗?

我尝试了什么:

标签: ionic-frameworkcapacitorcordova-media-plugin

解决方案


Android 10 使用新的文件系统,因此未自行更新的插件可能无法在 Android 10 上读取/创建文件。

您需要在清单文件中手动添加此行:android:requestLegacyExternalStorage="true"

  1. 在 Android Studio 中打开您的项目并打开 AndroidManifest 文件。
  2. 在清单文件中的标记中,添加 android:requestLegacyExternalStorage="true"
  3. 重建你的项目

推荐阅读