霸王
霸王
  • 发布:2015-09-14 15:10
  • 更新:2020-01-02 16:39
  • 阅读:5902

base64音频问题

分类:HTML5+

我做im语音,把语音文件转为base64数据流传到后台,然后存储为wav文件,ios系统下载该文件到本地后用plus.audio.createPlayer方法无法播放,安卓却可以,这是为什么啊

2015-09-14 15:10 负责人:无 分享
已邀请:
Sychel

Sychel - 从事物联网项目,基于java和GIS开发水利、烟草烘烤和智慧农业监控系统。

其实入门不久,邀请受之有愧。既来之,写几点拙见,如果不对还请忽视。
转为base64的方法在http传输的时候有好处,但是在具体使用的时候,不一定非得用这种格式的语音。所以我认为:
1、可以转换格式回来。比如文件操作中有reader.readAsDataURL( file );和reader.readAsText( file );两个方法。前者是base64,后者是文本读取,你可以在手机本地文本读取,之后转码用FileWriter转存。然后使用。
2、h5+虽然说写一套代码兼容多种平台,但是在实际操作中发现兼容性问题还是很严重,需要针对iso进行调优。我也经常借用NJS的方式调用原生api去解决问题。建议你可以针对iso处理一下,无论用上面的转码还是原生。
3、不知道你的项目能否使用第三方的播放器,当然你做im语音要求比较高,当我没说。

我个人使用音频一般是zip打包一堆下来,解压就播放,base64还没有用过。如果你这边可以提供一些报错或者是详细一点的信息,可以贴上来一起继续讨论。

  • 霸王 (作者)

    谢谢,这个问题我已经搞定了。IOS和安卓都支持amr文件,录音的时候将音频类型定义成amr文件了。然后上传到服务器,因为H5+的下载文件方法不识别amr,所以我在上传到服务器之后进行了zip压缩并删除之前的amr文件。收听音频的时候下载zip文件在解压。这点和您的方法一样的。呵呵。十分感谢


    2015-11-21 10:42

小闹

小闹

注意读文档,Android和iOS都支持的是amr格式

LLawliet

LLawliet

想问~怎么把uni-app的录音文件转base64传给后台呀

该问题目前已经被锁定, 无法添加新回复