【问题标题】:Record audio using MediaPlugin and send to server using base64 - Ionic 2使用 MediaPlugin 录制音频并使用 base64 发送到服务器 - Ionic 2
【发布时间】: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


    【解决方案1】:

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

    我不知道你的服务器是如何工作的,但如果像 html5 audio 那么你应该将你的文件转换为支持的扩展名(mp3oggwav),或者你应该使用另一个插件.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多