本人想做一个客服功能;实现在线的语音消息功能(图片和文本啥的都没问题了)。。。
问题是这样的;当我在ios下真机运行的时候都是ok的,但是安卓上有一个奇怪的bug;
就是假如是先收到语音消息的话,点击这个语音消息是可以正常播放,
自己录音发送消息也可以正常播放;但是要是打开页面自己先发语音消息就会无效,收到发来的信息也不能播放;
*美丽的分割线*****
早上行问的问题,经过一天的折腾,发现好像是plus.io.resolveLocalFileSystemURL这个函数在安卓底下的时候有点小bug,具体是啥 我就不知道了,总之上午的问题就是这个导致的;
修改如下:
语音文件转成base64:
if(mui.os.android){
// alert(1)
plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fs) {
fs.root.getFile(path, {
create: true
}, function(entry) {
entry.file(function(file) {
var reader = new plus.io.FileReader();
reader.readAsDataURL(file);
reader.onloadend = function(e) {
data = e.target.result
callback(data)
};
}, function(e) {
console.log(e)
})
})
})
} else if(mui.os.ios) {
// alert(2)
plus.io.resolveLocalFileSystemURL(path, function(entry) {
entry.file(function(file) {
var reader = new plus.io.FileReader();
reader.onloadend = function(e) {
// console.log(e.target.result);
data = e.target.result
callback(data)
};
reader.readAsDataURL(file);
}, function(e) {
mui.toast("读写出现异常: " + e.message);
})
})
}
ok搞定!!;
自贴自结 哈哈哈
1 个回复
8***@qq.com
是传给后台的BASE64吗,还有后台是把BASE64存成了文件,还是转成了录音文件呢?