【发布时间】:2017-03-26 08:39:57
【问题描述】:
在我的 Ionic 2 应用程序中。 我制作了一个录制音频并上传到服务器的功能。我用过MediaPlugin,它可以很好地录制,但是当上传它并在服务器上打开它时,文件无法收听。我认为是因为类型。那么,如何将 MediaPlugin 转换为正确的 base64 文件进行上传。
录音服务类
import { Injectable } from '@angular/core';
import { MediaPlugin } from 'ionic-native';
export enum AudioRecorderState {
Ready,
Recording,
Recorded
}
@Injectable()
export class AudioRecorder {
mediaPlugin: MediaPlugin = null;
state: AudioRecorderState = AudioRecorderState.Ready;
getMediaPlugin(){
return this.mediaPlugin;
}
preparedRecord(){
this.mediaPlugin = new MediaPlugin('audio.mp3');
}
startRecording() {
this.mediaPlugin.startRecord();
this.state = AudioRecorderState.Recording;
}
stopRecording() {
this.mediaPlugin.stopRecord();
this.state = AudioRecorderState.Ready;
}
}
页面类中调用 startRecording 和 stopRecording 的函数
startRecording() {
try {
this.audioRecorder.preparedRecord();
this.audioRecorder.startRecording();
}
catch (e) {
this.showAlert('Failed');
}
}
stopRecording() {
try {
this.audioRecorder.stopRecording();
const media = this.audioRecorder.getMediaPlugin();
this.base64Audio = "data:audio/mp3;base64," + media
//Use base64Audio to Upload to Server...
}
catch (e) {
this.showAlert('Could not stop recording.');
}
}
【问题讨论】:
标签: audio base64 ionic2 cordova-media-plugin