gpt4 book ai didi

audio - 使用 MediaPlugin 录制音频并使用 base64 发送到服务器 - Ionic 2

转载 作者:行者123 更新时间:2023-12-02 08:40:29 25 4
gpt4 key购买 nike

在我的 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.');
}
}

最佳答案

真正的问题是,MediaPlugin 不会创建 mp3,那只是一个外观。所以你可以使用 wavasd 或任何东西,MediaPlugin 都会正确播放。然而,这个插件创建了一个带有 aac (在 android 3gp 上)扩展名的文件。因此您无法在服务器上播放,因为服务器认为该文件是 mp3 但事实并非如此。当我尝试使用 html5 audio 播放它时,出现以下问题。

我不知道你的服务器是如何工作的,但如果像 html5 audio 那么你应该将你的文件转换为支持的扩展名(mp3ogg, wav),或者您应该使用其他插件。

关于audio - 使用 MediaPlugin 录制音频并使用 base64 发送到服务器 - Ionic 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43026735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com