无法识别使用 cordova-plugin-media 生成的 Ionic 2 音频文件



我在使用 cordova Media 插件时遇到了问题,我按照所有步骤从录音生成音频文件,一切正常,文件已创建,但是当我尝试在我的设备上使用音频播放器打开它时,它根本无法播放,我收到一条消息,告诉我播放器不处理这种文件类型。

代码如下:

import { Component } from '@angular/core';
import {IonicPage, NavController} from 'ionic-angular';
import { MediaPlugin, MediaObject} from '@ionic-native/media';
import { File } from '@ionic-native/file';
@IonicPage()
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  private isRecording: boolean = false;
  constructor(public navCtrl: NavController, private media: MediaPlugin, private file: File) {
  }
  record(){
    this.isRecording = true;
    const onStatusUpdate = (status) => console.log(status);
    const onSuccess = () => console.log('Action is successful.');
    const onError = (error) => console.error(error.message);
    const file: MediaObject = this.media.create('my_awesome_file.aac', onStatusUpdate, onSuccess, onError);
    file.startRecord();
    window.setTimeout(() => {
      file.stopRecord();
      file.release();
    }, 10000);
  }
  stop(){
    this.isRecording = false;
  }
  noRecording(){
    return !this.isRecording;
  }
}

目前,我仅通过单击录制开始录制,并设置了超时以使其在 10 秒后停止。在控制台日志中一切顺利,操作成功并生成文件。

可能是因为我的设备吗?我让它在三星Galaxy Tab 3上运行,在android 4.4.2下运行

有人已经遇到过这种问题吗?

好的,它来自设备Kitkat太旧了,我用棒棒糖进行了另一次测试,效果很好。

我也有同样的问题。事实证明我的设备也太旧了。我尝试了每一个文件扩展名(mp3,wav,aac,amr,m4a(。没有任何效果 - 手机只会一直说它无法播放文件。奇怪的是,媒体文件的持续时间为 0 秒,但媒体文件的文件大小实际(例如,字节实际记录到其中(。我还记录了控制台的振幅,当我对着麦克风说话时,振幅会波动,这表明它一定在拾取什么东西。我使用的是 5.0.1 版("棒棒糖"(,但是当我切换到 6.0.1("棉花糖"(时,它运行良好,甚至在录制前要求设备权限。

我还遇到了在sd卡根目录中生成tmp录制的问题,我使用这篇文章来解决此问题: https://forum.ionicframework.com/t/mediaplugin-does-not-save-audio-recording-into-file-ionic-native/91868/4

此外,您需要为录音创建一个唯一的文件名,因为它似乎不会覆盖文件?需要对此进行更多测试。

祝任何看到这个的人好运。

最新更新