【发布时间】:2019-12-17 18:30:48
【问题描述】:
我的应用中有聊天组件,我正在尝试添加发送语音消息(如 WhatsApp)功能。我正在使用 Ionic 的 Media 插件和 MediaObject 类型。该应用程序适用于 Android 和 iOS。目前,我正在 Android 上进行测试,但运气不佳!
我尝试了下面的代码来创建一个 MediaObject 并将录制的音频存储在其中。如果用户再次单击该按钮,我想停止录制。它正在工作,因为我在控制台上获取了日志,但 getDuration() 返回 -1!
startRecording() {
if (!this.recording) {
console.log('Started Recording');
this.recording = true;
this.fileName = Date.now();
this.audio = this.media.create(`../../../../assets/chat/${this.fileName}.m4a`);
this.audio.startRecord();
this.listenToAudioEvents();
} else {
this.stopRecording();
}
}
stopRecording() {
this.audio.stopRecord();
console.log(this.audio);
this.recording = false;
this.audioReady = true;
this.audio.getDuration();
console.log('Audio Duration: ' + this.audio.getDuration());
}
我想在调用stopRecording() 时停止录制并保留音频文件以便上传。另外,我不确定该文件实际存储在 Android 或 iOS 上的哪个位置。
【问题讨论】:
-
所以我认为很多这些方法应该是异步的,并且会接受一个回调函数,其参数应该是录音?无论如何,您是否尝试在此插件的 github 上寻找示例?
标签: javascript angular typescript cordova ionic4