录制的文件在cordova-plugin-media中既不保存也不播放(错误代码1)
Recorded file neither saving nor playing in cordova-plugin-media (Error code 1)
我正在使用此插件:cordova-plugin-media
使用离子电容器而不是使用命令 ionic cap sync
的 cordova。
我的代码:
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: 4
和 Action is successful
我希望在我的 android 设备的文件管理器中播放录音或获得 audiofile.mp3
,但我没有观察到任何内容。有人可以帮我解决这个问题吗?
我尝试了什么:
- 我认为它的扩展问题所以我尝试用 3gp 和 m4a 替换 mp3
- 我尝试使用切片方法从
file.externalRootDirectory
中删除 file://
- file.externalRootDirectory.slice(7)
- 我还尝试了 applicationDirectory 和 externalDataDirectory,而不是 externalRootDirectory
- 我也在他们的 github repository 上提交了我的问题,但我还没有收到任何回复
- 我尝试在其他社区和 Whosebug 本身寻找解决方案,但问题仍然存在
Android 10 uses a new file system 因此,尚未自行更新的插件可能不会 read/create 文件 Android 10.
您需要在清单文件中手动添加此行:android:requestLegacyExternalStorage="true"
- 在 Android Studio 中打开您的项目并打开 AndroidManifest 文件。
- 在清单文件内的标签中,添加 android:requestLegacyExternalStorage="true"
- 重建您的项目
我正在使用此插件:cordova-plugin-media
使用离子电容器而不是使用命令 ionic cap sync
的 cordova。
我的代码:
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: 4
和 Action is successful
我希望在我的 android 设备的文件管理器中播放录音或获得 audiofile.mp3
,但我没有观察到任何内容。有人可以帮我解决这个问题吗?
我尝试了什么:
- 我认为它的扩展问题所以我尝试用 3gp 和 m4a 替换 mp3
- 我尝试使用切片方法从
file.externalRootDirectory
中删除file://
-file.externalRootDirectory.slice(7)
- 我还尝试了 applicationDirectory 和 externalDataDirectory,而不是 externalRootDirectory
- 我也在他们的 github repository 上提交了我的问题,但我还没有收到任何回复
- 我尝试在其他社区和 Whosebug 本身寻找解决方案,但问题仍然存在
Android 10 uses a new file system 因此,尚未自行更新的插件可能不会 read/create 文件 Android 10.
您需要在清单文件中手动添加此行:android:requestLegacyExternalStorage="true"
- 在 Android Studio 中打开您的项目并打开 AndroidManifest 文件。
- 在清单文件内的标签中,添加 android:requestLegacyExternalStorage="true"
- 重建您的项目