Commit 3765f9b4871cce0918cc0ce4eb1bef2762543f37
1 parent
383d40df
chore: move local play to front of text check
Showing
1 changed file
with
29 additions
and
21 deletions
pages/index/index.js
@@ -24,12 +24,37 @@ Page({ | @@ -24,12 +24,37 @@ Page({ | ||
24 | const selectedType = this.data.typeList[this.data.selectedIndex]; | 24 | const selectedType = this.data.typeList[this.data.selectedIndex]; |
25 | const url = selectedType.createUrl(text); | 25 | const url = selectedType.createUrl(text); |
26 | const type = selectedType.desc; | 26 | const type = selectedType.desc; |
27 | + | ||
28 | + this.resetAudio(); | ||
29 | + audio = wx.createInnerAudioContext({useWebAudioImplement: true}); | ||
30 | + audio.autoplay = true; | ||
31 | + // 检查是否播放过 | ||
32 | + const audioList = app.globalData.getAudioList(); | ||
33 | + const played = audioList.find(v => v.url === url); | ||
34 | + // 播放失败要移除缓存内容 | ||
35 | + audio.onError(err => { | ||
36 | + app.globalData.setAudioList('delete', played.path); | ||
37 | + wx.showModal({ | ||
38 | + title: '提示', | ||
39 | + content: '该语音播放过但缓存失效,点击确定重新播放', | ||
40 | + showCancel: false, | ||
41 | + success: res => { | ||
42 | + this.play(); | ||
43 | + } | ||
44 | + }); | ||
45 | + }); | ||
46 | + // 播放过,使用本地文件减少请求,且从播放列表中移到最前 | ||
47 | + if(played){ | ||
48 | + app.globalData.setAudioList('delete', played.path); | ||
49 | + app.globalData.setAudioList('add', played); | ||
50 | + return audio.src = played.path; | ||
51 | + } | ||
27 | 52 | ||
53 | + // 检查文本是否合规 | ||
28 | wx.showLoading({ | 54 | wx.showLoading({ |
29 | title: '正在合成语音...', | 55 | title: '正在合成语音...', |
30 | mask: true | 56 | mask: true |
31 | }); | 57 | }); |
32 | - // 检查文本是否合规 | ||
33 | const result = await new Promise((resolve, reject) => { | 58 | const result = await new Promise((resolve, reject) => { |
34 | app.request({ | 59 | app.request({ |
35 | url: `${app.globalData.domain}/open-api/wechat-msg-sec-check`, | 60 | url: `${app.globalData.domain}/open-api/wechat-msg-sec-check`, |
@@ -46,9 +71,9 @@ Page({ | @@ -46,9 +71,9 @@ Page({ | ||
46 | } | 71 | } |
47 | }); | 72 | }); |
48 | }); | 73 | }); |
49 | - wx.hideLoading(); | ||
50 | // 不合规结束 | 74 | // 不合规结束 |
51 | if(result.suggest !== 'pass'){ | 75 | if(result.suggest !== 'pass'){ |
76 | + wx.hideLoading(); | ||
52 | return wx.showToast({ | 77 | return wx.showToast({ |
53 | title: '内容不合规', | 78 | title: '内容不合规', |
54 | icon: 'error', | 79 | icon: 'error', |
@@ -56,29 +81,12 @@ Page({ | @@ -56,29 +81,12 @@ Page({ | ||
56 | duration: 2000 | 81 | duration: 2000 |
57 | }); | 82 | }); |
58 | } | 83 | } |
59 | - | ||
60 | - this.resetAudio(); | ||
61 | - audio = wx.createInnerAudioContext({useWebAudioImplement: true}); | ||
62 | - audio.autoplay = true; | ||
63 | - // 检查是否播放过 | ||
64 | - const audioList = app.globalData.getAudioList(); | ||
65 | - const played = audioList.find(v => v.url === url); | ||
66 | - // 播放失败要移除缓存内容 | ||
67 | - audio.onError(err => { | ||
68 | - if(err.errCode){ | ||
69 | - app.globalData.setAudioList('delete', played.path); | ||
70 | - } | ||
71 | - }); | ||
72 | - // 播放过,使用本地文件减少请求,且从播放列表中移到最前 | ||
73 | - if(played){ | ||
74 | - app.globalData.setAudioList('delete', played.path); | ||
75 | - app.globalData.setAudioList('add', played); | ||
76 | - return audio.src = played.path; | ||
77 | - } | 84 | + |
78 | // 未播放过,先下载再播放 | 85 | // 未播放过,先下载再播放 |
79 | wx.downloadFile({ | 86 | wx.downloadFile({ |
80 | url, | 87 | url, |
81 | success (res) { | 88 | success (res) { |
89 | + wx.hideLoading(); | ||
82 | audio.src = res.tempFilePath; | 90 | audio.src = res.tempFilePath; |
83 | app.globalData.setAudioList('add', { | 91 | app.globalData.setAudioList('add', { |
84 | // 音频文本 | 92 | // 音频文本 |