ios版本微信浏览器动态修改

suxiaoyinger 2016-08-03 05:11:42
开发中需要利用微信的录音功能将用户录制的语音上传至微信服务器,保存到本地服务器中,从本地服务器获取音频的地址动态修改<audio>标签的src属性后让它播放。但是问题来了,ios系统手机死活不播放,Android手机测试都可以播放。代码如下,哪里有问题吗?

wx.ready(function() {
var voice = {
localId: '',
serverId: ''
};
// 开始录音
$("#startRecord").click(function() {
wx.startRecord({
success: function() {
voice.localId = res.localId;

}
});
});
// 录音结束
$("#stopRecord").click(function() {
wx.stopRecord({
success: function(res) {
voice.localId = res.localId;
},
fail: function(res) {
alert(JSON.stringify(res));
}
});
});
// 4.8 上传语音
$("#uploadVoice").click(function() {
if(voice.localId == '') {
alert('请先使用 startRecord 接口录制一段声音');
return;
}
wx.uploadVoice({
localId: voice.localId,
success: function(res) {
voice.localId = res.localId;
alert('上传语音成功,serverId 为' + res.serverId);
voice.serverId = res.serverId;
alert("mediaId:"+voice.serverId);
$("span").text(voice.serverId);
$.ajax({
type: "get",
dataType: "json",
url: "/voiceLoad/saveVoice",
data: {
openId:openId,
mediaId: voice.serverId
},
success: function(data) {
if(data.isOk==1){
alert("本地服务器上传成功!")
voiceId=data.voiceId;
}
else{
alert("本地服务器上传失败!")
}
},
error:function(){
alert("error!")
}
});
},
fail: function(res) {
//alert(JSON.stringify(res));
alert("微信服务器上传失败!");
}
});
});
//触发播放音频的事件
$("#play").click(function(){
alert($("#myAudio").attr("src"))
if($("#myAudio").attr("src")!=undefined && $("#myAudio").attr("src")!=""){
alert("notundefined")
$("#myAudio")[0].load();
$("#myAudio").get(0).play();
}
})
// 4.9 下载语音
$("#downloadVoice").click(function() {
if(voice.serverId == '') {
alert('请先使用 uploadVoice 上传声音');
return;
}
$.ajax({
type: "get",
dataType: "json",
url: "/voiceLoad/getVoice",
data: {
voiceId:voiceId
},
success: function(data) {
if(data.isOk==1){
alert("voiceId:"+voiceId);
var ua=navigator.userAgent.toLowerCase();
if(/(Android)/i.test(navigator.userAgent)){
$("#myAudio").attr("src",data.filePath);
$("#myAudio").attr("autoplay","autoplay");
$("#myAudio")[0].load();
$("#myAudio").get(0).play();
}
else if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)){
alert("iphone")
//iphone手机尝试的方法1
/*document.addEventListener("WeixinJSBridgeReady", function () {
alert(data.filePath);
playMusic(data.filePath);
}, false);*/

//iphone手机尝试的方法2
document.getElementById("myAudio").setAttribute("src",data.filePath);
document.getElementById("myAudio").play();
$("#play").trriger("click");
}
}
else{
alert("本地服务器下载失败!")
}
}
});
});

function playMusic(src){
document.getElementById("myAudio").setAttribute("src",src);
document.getElementById("myAudio").play();
}
})

...全文
2002 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 ql141406 的回复:
但是我拷贝一首其他的歌,MP3格式的上去在IOS的微信浏览器上面就可以播放,就是下载的不得行。
你下个格式工厂重新转一下 应该是你mp3格式的问题
qq_16087249 2016-11-11
  • 打赏
  • 举报
回复
<audio preload="none" id="audio"autoplay="autoplay"></audio> plays: function(url) { console.log(url) $("#audio").attr("src", url).get(0).load().play(); } audio标签设置audoplay属性,动态更换src之后,先load()重载一下,再play(),解决了问题。
ql141406 2016-09-23
  • 打赏
  • 举报
回复
但是我拷贝一首其他的歌,MP3格式的上去在IOS的微信浏览器上面就可以播放,就是下载的不得行。
ql141406 2016-09-23
  • 打赏
  • 举报
回复
楼主,我也遇到和你一样的问题,请问你IOS下面是怎么解决的?

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧