wangchaan

Results 4 comments of wangchaan

> 看下这个 issue,应该跟你是同一个问题。#5 首先,不是一个问题。 经过我测试发现,amr文件必须足够大才行,我最开始测试是2-3秒,2K,本地测试不报错,不成功;如果amr足够大,比如30秒,23k,本地测试不报错,但是能生成mp3。你可以亲自尝试下小amr情况下的转换问题。

> 你的amr文件是来自公众号消息发的还是微信应用里面的?微信的语音文件有加密的,这个项目解决不了。查看一下已关闭的issue,有一个说过这个问题,有解决思路。 不是公众号,也不是微信聊天语音。而是,通过微信录音,当做媒体文件。amr过小的情况下,这个转换有问题。我怀疑是不是和里边某处的流的处理相关?

> 可以发一个示例文件给我试一下吗? [test.zip](https://github.com/dadiyang/jave/files/4069060/test.zip) **两种情况** > 直接操作amr文件 单独使用,在有amr的情况下,直接使用是没问题的。 > 通过字节数组写入文件,再操作写入的amr文件 small为小文件,无法转换且不报错;big为大文件,转换正常。另外,我的场景是:从请求中拿到字节数组,再用流写到文件。这种情况下,small是转换不了的,不报错;big是可以转换的。(从请求里获取的字节数组可以写入文件,并且可以播放)

> 可以发一个示例文件给我试一下吗? ![11111111111](https://user-images.githubusercontent.com/48501469/72497410-65448e00-3867-11ea-8cf6-77712e52c7f1.png) 我这个是直接使用jave,对上述test里的small和big做的实验。同样的,只要直接对文件操作,只是报异常(it.sauronsoftware.jave.EncoderException: Duration: N/A, bitrate: N/A)但不影响输出mp3;但是,对于字节数组来说,还是和上一个回答一样,small是转换不了的,但是会报错(it.sauronsoftware.jave.InputFormatException: Unknown format见上图);big是可以转换的,抱异常(it.sauronsoftware.jave.EncoderException: Duration: N/A, bitrate: N/A)。