import common from '../../utils/util'; import main from '../../utils/main'; const app = getApp(); var TaskList = []; var isPlaying = false; var innerAudioContext1; var timeoutPlayAudio; var tempPlayUrl = ""; var tempPlayUrlLocal = ""; var timeoutEveryCard = 0; var isFinished=0; Page({ data: { IsSelect: true, Color: { ID: 1 }, }, onReady: function () { var that = this; innerAudioContext1 = wx.createInnerAudioContext(); innerAudioContext1.onPlay(() => { console.log('开始播放') }); innerAudioContext1.onError((res) => { console.log("innerAudioContext1.errMsg:" + res.errMsg); console.log("innerAudioContext1.errCode:" + res.errCode); that.audioCtx.setSrc(tempPlayUrl); that.audioCtx.play(); }); }, onLoad: function (options) { var that = this; that.setData({ BookID:options.bookid, IsShowAnswer: [0, 0], Color: main.getDetailColor(app.globalData.ColorIndex), Containnerheight: main.getWindowHeight(), }); if (options.type) that.init2(options); else{ if (options.bookid<100){ if (options.bookid>=25 && options.bookid<=42) that.initAncientPoetry(options); else if (options.bookid>=43 && options.bookid<=44) that.initPinyin(options); else if (options.bookid>=45 && options.bookid<=60) that.initCi(options); else that.init(options); } else that.initEng(options); } that.getColor(); this.audioCtx = wx.createAudioContext('myAudio'); isFinished = 0; if (app.globalData.BaiduToken === "") main.getBaiduToken(); }, init: function (options) { var that = this; that.setData({ TaskInfo: {}, TestType: options.testtype, TestName1: options.name1, TestName2: options.name2, }); main.GetHanziUnitWords(options.unitsid,that.data.TestType, function (data) { if (data) { TaskList=data; TaskList = common.randomArray(TaskList); that.setData({ TaskInfo: TaskList[0], TaskLength: TaskList.length, CurrentIndex: 0, }); common.getStorageValue(that, "TestAutioPlay", 1, function () { if (that.data.TestAutioPlay == 1 && that.data.TestType == "write") { that.playSound({ currentTarget: { dataset: { content: TaskList[that.data.CurrentIndex].ReadString } } }) } }); } }); }, initPinyin: function (options) { var that = this; that.setData({ TaskInfo: {}, TestType: options.testtype, TestName1: options.name1, TestName2: options.name2, }); main.getData('GetPinyinUnitWords?UserID='+app.globalData.userInfo.UserID+'&BookID='+options.bookid+'&UnitID='+options.unitsid+'&Word='+options.name2, function (data) { if (data) { TaskList = []; var list = data; for (var k = 0; k < list.length; k++) { var taskInfo = list[k]; taskInfo.TagWidth=230; taskInfo.FontSize=108; taskInfo.ContentNew = main.changeStringToView(taskInfo.Content); TaskList.push(taskInfo); } TaskList = common.randomArray(TaskList); that.setData({ TaskInfo: TaskList[0], TaskLength: TaskList.length, CurrentIndex: 0, }); common.getStorageValue(that, "TestAutioPlay", 1, function () { if (that.data.TestAutioPlay == 1 && that.data.TestType == "write") { that.playSound({ currentTarget: { dataset: { content: TaskList[that.data.CurrentIndex].ReadString } } }) } }); } }); }, initCi: function (options) { var that = this; that.setData({ TaskInfo: {}, TestType: options.testtype, TestName1: options.name1, TestName2: options.name2, }); main.getData('GetHanziUnitWords?UserID='+app.globalData.userInfo.UserID+'&UnitID='+options.unitsid+'&TestType='+options.testtype, function (data) { if (data) { TaskList = []; var list = data; for (var k = 0; k < list.length; k++) { var taskInfo = list[k]; taskInfo.TagWidth=140; taskInfo.FontSize=64; taskInfo.ContentNew = main.changeStringToView(taskInfo.Content); TaskList.push(taskInfo); } //TaskList = common.randomArray(TaskList); that.setData({ TaskInfo: TaskList[0], TaskLength: TaskList.length, CurrentIndex: 0, }); common.getStorageValue(that, "TestAutioPlay", 1, function () { if (that.data.TestAutioPlay == 1 && that.data.TestType == "write") { that.playSound({ currentTarget: { dataset: { content: TaskList[that.data.CurrentIndex].ReadString } } }) } }); } }); }, init2: function (options) { var that = this; var TestTask2=wx.getStorageSync("TestTask2"); var name = TestTask2.Name.split("#"); that.setData({ TaskInfo: {}, ID:TestTask2.ID, TestType: TestTask2.TestType, TestName1: name[0], TestName2: name[1], BookID:TestTask2.BookID, }); if (that.data.BookID<=12) TestTask2.List = common.randomArray(TestTask2.List); var list = []; var i = 0; for (var i = 0; i < TestTask2.List.length;i++){ if (TestTask2.List[i].Result){ list.push(TestTask2.List[i]); } } var currentIndex=list.length; for (var i = 0; i < TestTask2.List.length; i++) { if (!TestTask2.List[i].Result) { list.push(TestTask2.List[i]); } } TaskList = list; if (currentIndex >= TaskList.length || options.type=="restart"){ currentIndex=0; for (var i = 0; i < TaskList.length; i++) { delete TaskList[i].Result; } } that.setData({ TaskLength: TaskList.length, CurrentIndex: currentIndex, TaskInfo: TaskList[currentIndex], }); common.getStorageValue(that, "TestAutioPlay", 1, function () { if (that.data.TestAutioPlay == 1 && that.data.TestType == "write") { that.playSound({ currentTarget: { dataset: { content: TaskList[that.data.CurrentIndex].ReadString } } }) } }); }, initAncientPoetry:function(options){ var that=this; that.setData({ TaskInfo: {}, TestType: options.testtype, TestName1: options.name1, TestName2: "古诗文", }); main.getData('GetTestAncientPoetryList?UserID='+app.globalData.userInfo.UserID+'&BookID='+options.bookid, function (data) { if (data) { TaskList = []; var list = data; for (var k = 0; k < list.length; k++) { var taskInfo = list[k]; taskInfo.TagWidth=336; if (taskInfo.Word.length>8) taskInfo.FontSize=48; else taskInfo.FontSize=64; taskInfo.ContentNew = main.changeStringToView(taskInfo.Content); TaskList.push(taskInfo); } //TaskList = common.randomArray(TaskList); that.setData({ TaskInfo: TaskList[0], TaskLength: TaskList.length, CurrentIndex: 0, }); } }); }, initEng: function (options) { var that = this; that.setData({ TaskInfo: {}, TestType: options.testtype, TestName1: options.name1, TestName2: options.name2, UnitID:options.unitsid, }); var wordStr=""; if (options.bookid==100){ wordStr="A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"; } else{ var arrEnglist=wx.getStorageSync("EnglishAll"); if (arrEnglist) arrEnglist=JSON.parse(arrEnglist); else arrEnglist=[]; for(var i=0;i= 0 || str.indexOf("美 [") >= 0 || str.indexOf("baidu.com")>0 || str.indexOf("iciba.com")>0 || str.indexOf("myqcloud.com")>0) { str = str.replace("英 [", "["); str = str.replace("美 [", "["); url = e.currentTarget.dataset.soundmark; if (!url) url=str; } else if (str.indexOf("pinyin")>0){ url=str; } else if (e.currentTarget.dataset.soundmark && e.currentTarget.dataset.soundmark != "undefined") { var soundmark = e.currentTarget.dataset.soundmark; if (soundmark && soundmark.indexOf("http") < 0) { url = app.globalData.audioUrlBaidu; url = url.replace("[token]", app.globalData.BaiduToken); url = url.replace("[word]", soundmark); } else { url = soundmark; } } else { url = app.globalData.audioUrlBaidu; url = url.replace("[token]", app.globalData.BaiduToken); url = url.replace("[word]", str); } if (url.indexOf("http") > 0) url = url.substr(url.indexOf("http")); if (url.indexOf("'") > 0) url = common.ReplaceAllString(url, "'", ""); url = url.replace("http://", "https://"); url = encodeURI(url); if (!isPlaying || tempPlayUrl == "" || url != tempPlayUrl) { isPlaying = true; timeoutPlayAudio = setTimeout(function () { isPlaying = false; }, 60000); wx.showLoading({ title: '音频下载中', mask: true, }); setTimeout(function () { wx.hideLoading(); }, 30000); wx.downloadFile({ url: url, success(res) { wx.hideLoading(); tempPlayUrlLocal = res.tempFilePath; innerAudioContext1.src = res.tempFilePath; innerAudioContext1.play(); tempPlayUrl = url; }, fail(err) { wx.hideLoading(); if (url.indexOf("sp0.baidu.com")>0){ var soundmark=url.substring(url.indexOf("text=")+5,url.indexOf("&spd")); url = app.globalData.audioUrlYoudao; url = url.replace("[word]", soundmark); tempPlayUrlLocal = url; that.audioCtx.setSrc(url); that.audioCtx.play(); tempPlayUrl = url; } } }); } else { if (this.audioCtx) this.audioCtx.pause(); if (innerAudioContext1) innerAudioContext1.stop(); isPlaying = false; } } }, audioBindEnded: function () { isPlaying = false; }, audioBindError: function (err) { console.log(err); innerAudioContext1.src = tempPlayUrlLocal; innerAudioContext1.play(); main.getBaiduToken(); }, setSoundFile: function (isFinish) { //isFinish=3搁置 =2撤退 =1结束 =0正常 =-1开始 var that = this; var url = "/pages/sounds/"; if (isFinish == 1) { url += "end.mp3"; } else if (isFinish == 2) { url += "short3.mp3"; } else if (isFinish == 3) { url += "short1.mp3"; } else { url += "short2.mp3"; } if (isFinish >= 0) { innerAudioContext1.src = url; innerAudioContext1.play(); } wx.pageScrollTo({ scrollTop: 0, }); }, onAutoPlay:function(e){ var id=e.currentTarget.dataset.id; this.setData({ TestAutioPlay:id, }); wx.setStorageSync("TestAutioPlay",id); }, onFinished:function(){ if (TaskList.length > 0 && this.data.CurrentIndex > 0) { var TestTask = {}; if (this.data.ID) TestTask.ID=this.data.ID; TestTask.TestType = this.data.TestType; TestTask.IsFinished = isFinished; TestTask.Name = this.data.TestName1 + "#" + this.data.TestName2; if (this.data.UnitID) TestTask.Name+="#"+this.data.UnitID TestTask.List = TaskList; TestTask.BookID=this.data.BookID; wx.setStorageSync("TestTask", TestTask); wx.redirectTo({ url: './report?type=new', }); } else{ wx.navigateBack({ delta: 1, }); } }, onUnload:function(){ wx.removeStorageSync("TestTask2"); if (innerAudioContext1) { innerAudioContext1.stop(); } }, showBishunOrKaiti:function(e){ var that=this; main.downloadBishunKaitiImage( e.currentTarget.dataset.url, e.currentTarget.dataset.serverurl, e.currentTarget.dataset.type, that.data.TaskInfo.ContentNew.Field,function(fields){ that.data.TaskInfo.ContentNew.Field=fields; that.setData({ TaskInfo: that.data.TaskInfo, }); }); }, onShareAppMessage: function () { return { title: app.globalData.ShareTitle, path: app.globalData.SharePath + '?UserID=' + app.globalData.userInfo.UserID, imageUrl: app.globalData.ShareImage, } }, })