智慧画屏客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.1 KiB

3 years ago
  1. const utils = {};
  2. var audio = uni.createInnerAudioContext()
  3. var isPause = false //是否在暂停状态
  4. var previousSrc = '' //上一个音频的地址,如果和现在的播放地址一样就进入暂停
  5. utils.playAudios = function (src) {
  6. if(isPause){ //在暂停状态
  7. if(previousSrc == src){
  8. audio.play()
  9. }else{
  10. audio.stop()
  11. audio.src = src
  12. previousSrc = src
  13. audio.onCanplay(()=> {
  14. audio.play()
  15. })
  16. }
  17. }else{ //不在暂停状态
  18. if(previousSrc == src){
  19. audio.pause()
  20. isPause = true
  21. }else{
  22. audio.stop()
  23. audio.src = src
  24. previousSrc = src
  25. audio.onCanplay(()=> {
  26. audio.play()
  27. })
  28. }
  29. }
  30. }
  31. utils.stopAudios = function () {
  32. audio.stop()
  33. }
  34. utils.pauseAudios = function () {
  35. audio.pause()
  36. }
  37. audio.onPlay(() => { //播放监听事件
  38. console.log('开始播放');
  39. isPause = false
  40. });
  41. audio.onPause(() => {//暂停监听
  42. console.log('暂停');
  43. isPause = true
  44. });
  45. audio.onEnded(() => {// 自然播放结束监听也需要更改isPause 开关状态
  46. console.log('音频自然播放结束事件');
  47. isPause = true
  48. });
  49. export default utils