recorder-h5.js 898 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import UNI_APP from '@/.env.js';
  2. let rc = null;
  3. let start = () => {
  4. if (rc != null) {
  5. close();
  6. }
  7. rc = new Recorder();
  8. return rc.start();
  9. }
  10. let pause = () => {
  11. rc.pause();
  12. }
  13. let close = () => {
  14. rc.destroy();
  15. rc = null;
  16. }
  17. let upload = () => {
  18. return new Promise((resolve, reject) => {
  19. const wavBlob = rc.getWAVBlob();
  20. const newbolb = new Blob([wavBlob], {
  21. type: 'audio/wav'
  22. })
  23. const name = new Date().getDate() + '.wav';
  24. const file = new File([newbolb], name)
  25. uni.uploadFile({
  26. url: UNI_APP.BASE_URL + '/file/upload',
  27. header: {
  28. accessToken: uni.getStorageSync("loginInfo").accessToken
  29. },
  30. file: file,
  31. name: 'file',
  32. success: (res) => {
  33. const data = {
  34. duration: parseInt(rc.duration),
  35. url: JSON.parse(res.data).data
  36. }
  37. resolve(data);
  38. },
  39. fail: (e) => {
  40. reject(e);
  41. }
  42. })
  43. })
  44. }
  45. export {
  46. start,
  47. pause,
  48. close,
  49. upload
  50. }