钉钉⼩程序中苹果⼿机iphoneIOS端⾳频⽆法播放和⾳频每次播放速度都加快的原因及
解决⽅法
问题:
钉钉⼩程序的IOS端⽆法播放后台接⼝返回来的⾳频⽂件,但是⽂件在安卓端和模拟器端均可播放;
每次点击播放,⾳频播放速度加快⼀倍,导致⾳频⽆法听清;
原因:
IOS端的dd.getBackgroundAudioManager()接⼝创建的⾳频管理器,manager.play()⽅法只能播放钉钉返回的临时的临时⽂件路径;
没有实例化⾳频的title和播放速度playbackRate。
解决⽅法:
第⼀个问题提交了⼯单询问客服,客服的回答是这样的:
⽅法是在播放之前,需要先将接⼝返回的⽂件下载,然后传⼊播放接⼝才能播放。
第⼆个问题在客服给我回复之前就解决了:
⽅法是实例化⾳频的title和播放速度playbackRate,最好也每次播放都重新实例化manager对象(记得⼿机端测试的时候⼀定要清除缓存关闭钉钉APP再重新启动);
附上代码⽚段:
// 点击播放
onInternalAudioTap() {
dd.downloadFile({                          // ⾛dd下载接⼝
url: detail.cYyms,                        // 参数url是从接⼝返回的⾳频链接detail.cYyms
success: ({ filePath }) => {              // 下载成功后返回⾳频⽂件的临时路径filePath
let manager = dd.getBackgroundAudioManager();          、// 重新实例化manager对象
manager.src = filePath;                // 将临时路径的值赋给manager的src
manager.playbackRate = 1;              // 指定播放速度为 1
manager.title = '';                    // 给每个⾳频重新赋值title, 防⽌IOS端重复调⽤play()使播放速度累加
manager.play();                        // 播放
},
fail: (res) => {
dd.showToast({
content: Message || ,
type: "fail",
苹果手机密码忘记了怎么办才能解开
duration: 3000
})
}
})
}
后记
⼩程序的⽂档到底能不能写完整⼀点.......
播放速度playbackRate这个字段完全没有在dd.getBackgroundAudioManager()这个接⼝的⽂档⾥出现过,还是我⼩程序的⽂档才到
⽽且也没有任何提⽰说IOS端的语⾳播放需要下载成临时⽂件, ⿇了