微信公众号开发语言转码问题

微信服务号开发,使用jssdk上传语音,然后再利用下载接口将语音下载到本地服务器为amr格式,ios无法直接播放,所以在网上找了实现转码功能的代码.
但是在使用ffmpeg转码为MP3格式后,转码后的文件可以在安卓端,
PC端正常使用,在ios上无法正常播放,点击播放,没有声音,这问题该怎么解决呢,还是我转码中有什么问题?

使用java做为开发语言,以下是实现转码功能的代码

 /** * @param nowPath 转码前文件保存路径 * @param afterPath 转码后文件保存路径 * @param choice 是否删除原文件,true为删除 */ public static void convertVoiceString nowPath,String afterPath,boolean choice { File source = new FilenowPath; File target = new FileafterPath; AudioAttributes audio = new AudioAttributes; Encoder encoder = new Encoder; audio.setCodec"libmp3lame"; EncodingAttributes attrs = new EncodingAttributes; attrs.setFormat"mp3"; attrs.setAudioAttributesaudio; try { encoder.encodesource, target, attrs; } catch IllegalArgumentException e { //e.printStackTrace; } catch InputFormatException e { //e.printStackTrace; } catch EncoderException e { //e.printStackTrace; } //如果传入布尔类型为真,删除原文件 ifchoice{ source.delete; } }

不清楚你指的ios上的播放 是指用的h5的audio标签播放,还是其他的方式。
如果是h5,首先请确保你打开这个播放页面的浏览器支持h5微信自带的是支持的。如果依然不能播放,再在MP3文件上面找原因。
ffmpeg 在不同的服务器上面要求不一样,如果你的服务器是linux,请确保你的ffmeg位数和linux位数一样,并且linux内核版本需要在2.6.32及以上。
最后,不建议你删除源文件,ffmpeg转换后的mp3 音质很差,源文件的amr格式,可以保存着,用于群发语音消息或被动回复语音消息。
附上一篇ffmpeg的文章:http://linjie.org/2015/08/06/amr%E6%A0%BC%E5%BC%8F%E8%BD%ACmp3%E6%A0%BC%E5%BC%8F-%E5%AE%8C%E7%BE%8E%E8%A7%A3%E5%86%B3Linux%E4%B8%8B%E8%BD%AC%E6%8D%A20K%E9%97%AE%E9%A2%98/

发表评论

电子邮件地址不会被公开。 必填项已用*标注