【问题标题】:Ionic 3 get base64 audio string from recorded fileIonic 3 从录制的文件中获取 base64 音频字符串
【发布时间】:2018-08-04 15:09:13
【问题描述】:

我正在使用cordova-plugin-media 在我的 Android 离子应用程序中录制语音(具有暂停和恢复功能)。录制完成后,我需要获取 base64 字符串才能使用 html 音频标签播放它。问题是:如果我试图将暂停和恢复的录音保存为 3gp 文件('voice.3gp'),那么当我使用cordova-plugin-file 的 readAsDataURL 方法时,我什么也没有收到(回调根本没有称为)。如果我试图将其保存为 mp3 或 wav 文件,那么我只会收到录音的第一部分(暂停前)。我想正确的音频文件扩展名应该是 3gp,因为这个扩展名用于“cordova-plugin-media”的实现,但是我在使用 html 音频标签播放这个文件时遇到了问题。任何帮助都会得到帮助

【问题讨论】:

    标签: ionic-framework base64 cordova-plugins cordova-plugin-file 3gp


    【解决方案1】:

    好的,我刚刚发现您可以使用cordova-plugin-file的方法“resolveLocalFilesystemUrl”,它将返回对象,并且在该对象内部有一个属性“nativeURL”可以用作源(src ) 用于视频标签(必须使用视频标签而不是音频,因为 3gp 格式实际上是用于视频的)

    【讨论】:

      【解决方案2】:
      this.file.readAsDataURL(filePathtoUpload, this.fileName)
      .then((base64Audio) => {
      console.log(base64Audio);
      })
      .catch(function (err: TypeError) {
      console.log("readAsDataURL: " + err);
      });
      

      这对我有用

      【讨论】:

      • 您可以考虑在代码中添加一些 cmets 和解释性句子,因为这会增加您的答案对其他用户的价值。
      • 以上代码用于将录制的文件转换为base64文件
      【解决方案3】:

      阅读:https://ionicframework.com/docs/v3/native/base64/

      是ionic的官方网站API。只需安装该插件并使用它:

       this.base64.encodeFile(this.filePath + this.fileName).then(
            (base64:any) =>{
            console.log('file base64 encoding: ' + base64);
          });
      

      在这篇文章中,我会更好地解释它。我把链接放在这里: convert audio file to base64 in ionic 3

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-30
        • 2017-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多