bellContext.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { PREFIX } from '../TUICallKit';
  2. export class BellContext {
  3. constructor() {
  4. this.context = wx.createInnerAudioContext();
  5. this.context.loop = true;
  6. this.context.onError((res) => {
  7. this.handleError(res.errCode);
  8. });
  9. }
  10. setBellSrc(filePath) {
  11. const fs = wx.getFileSystemManager();
  12. try {
  13. fs.readFileSync(filePath, 'utf8', 0);
  14. } catch (e) {
  15. console.warn(`${PREFIX}-setCallingBell: 媒体铃声路径错误`, filePath);
  16. }
  17. this.context.src = filePath;
  18. }
  19. play() {
  20. this.context.play();
  21. }
  22. stop() {
  23. this.context.stop();
  24. }
  25. handleError(code) {
  26. let errMsg = '';
  27. switch (code) {
  28. case 10001:
  29. errMsg = '系统错误';
  30. break;
  31. case 10002:
  32. errMsg = '网络错误';
  33. break;
  34. case 10003:
  35. errMsg = '文件错误';
  36. break;
  37. case 10004:
  38. errMsg = '格式错误';
  39. break;
  40. default:
  41. errMsg = '未知错误';
  42. break;
  43. }
  44. console.warn(`${PREFIX}-setCallingBell: 媒体铃声${errMsg}`);
  45. }
  46. destroyInstance() {
  47. this.context.destroy();
  48. }
  49. }