wx.createInnerAudioContext 创建组件进行音频播放,在开发工具中没有任何问题,换到手机上就报错,帮忙看看是啥问题呢,谢谢。
大概的代码如下,url会把传入的信息转成wav音频。
play: function(e) { //const audio = wx.createInnerAudioContext(); if (!audio.paused) { audio.stop(); } if (this.data.src.length == '') { this.translate(); } audio.autoplay = true; audio.src = app.globalData.apiUrl + "?cw=" + encodeURIComponent(base64.encode(this.data.src)); console.log(audio.src); audio.onPlay(() => { console.log('onPlay:开始播放'); this.setData({ isplaying: true, playcss: 'selected', pausecss: '' }); }); audio.onPause(() => { console.log('onPause:音频暂停事件'); this.setData({ playcss: '', pausecss: 'selected' }); curTime = audio.currentTime; }); audio.onTimeUpdate(() => { console.log('onTimeUpdate:音频播放进度更新事件'); console.log(audio.currentTime); }); audio.onEnded(() => { console.log('onEnded:音频自然播放结束事件'); this.setData({ isplaying: false, playcss: '', pausecss: '' }); curTime = 0; }); audio.onStop(() => { console.log('onStop:音频停止事件'); this.setData({ isplaying: false, playcss: '', pausecss: '' }); curTime = 0; //audio.destroy(); }); audio.onError((res) => { console.log("onError:" + res.errMsg); console.log(res); //audio.destroy(); }); audio.onWaiting((res) => { console.log('onWaiting:音频加载中事件,当音频因为数据不足,需要停下来加载时会触发') console.log(res) }); audio.onCanplay(() => { console.log('onCanplay'); audio.play(); }); |

我的转成mp3已经没有问题了。而且我的音频文件很短。
遇到同样问题,现在采取了先download在播放,但还是存在下载下来的语音文件不能正常播放,请问你现在转换成mp3格式就可以解决了吗
哎,只能在服务端把wav转成mp3了。希望官方尽快给出好的解决访问或者在文档增加详细的说明,到底哪些文件在那些系统可以使用吧。这个问题应该只有IOS才会出现。。。。
下面是服务端将wav转成mp3的代码,需要的可以参考
$wavfile=$_REQUEST['wav'];$wav=file_get_contents($wavfile);$descriptorspec=array(0 =>array("pipe","r"),1 =>array("pipe","w"),2 =>array("file","/dev/null","w"));$process= proc_open("/usr/bin/lame - -",$descriptorspec,$pipes);fwrite($pipes[0],$wav);fclose($pipes[0] );$mp3= stream_get_contents($pipes[1] );fclose($pipes[1] );proc_close($process);header('Content-Type: audio/mpeg');echo$mp3;这个是github上的一个类库,原理相同
https://github.com/adriengibrat/audio-streamer
为什么我不能停止呢
我看17年有个帖子也说这个问题,是什么有损压缩的不能播放是吗?
InnerAudioContext 难道不支持有损压缩的wav文件还是因为IOS不支持的原因呢?