Lösung für den Uniapp-Soundwiedergabefehler: 1. Öffnen Sie die entsprechende Codedatei und führen Sie dann direkt die Objektwiedergabemethode aus, um den ursprünglichen Quellpfad zu ersetzen. 2. Aktualisieren Sie die Version des Entwicklungstools.
Die Betriebsumgebung dieses Tutorials: Windows7-System, Uni-App2.5.1-Version, DELL G3-Computer.
Uni-App-Sprachdatei-Wiedergabeproblem, innerAudioContext kann nicht zerstört werden! ! !
uni-app voice createInnerAudioContext-Objekt kann nicht zerstört werden und stürzt ab! ! !
Ich habe heute beim Packen festgestellt, dass die Stimme nicht abgespielt werden konnte, also habe ich nach dem Grund gesucht, dass dieses Problem behoben wurde, also habe ich das Problem schnell gefunden und das Original verwendet Verpackung. Dieser Fehler ist wirklich unmöglich.
Hiermit nehme ich den Fehler zur Kenntnis, dass die Stimme heute nicht abgespielt werden kann. Die Sprachwiedergabe wird mit dem integrierten uni.createInnerAudioContext(); erstellt. Beim Abspielen wird ein Fehler gemeldet und stürzt ab.
Posten Sie den Code, so habe ich ihn geschrieben. Wenn die aktuelle Methode aufgerufen wird, fügen Sie den Code direkt ein. Kopieren Sie ihn nicht direkt.
<script> const innerAudioContext = uni.createInnerAudioContext();data() { return {```}; }, methods: { hechengAudio(audioPram) { // innerAudioContext.stop(); var dd = audioPram.replace(/<\/?.+?>/g, ""); audioPram = dd.replace(/ /g, ""); //dds为得到后的内容 if (audioPram != this.startAudio) { this.startPage = false; } var url = this.getMp3 + 'cuid=' + uni.getSystemInfoSync().version + '&lan=zh&ctp=1&tok=' + this.$token() + '&tex=' + audioPram + '&vol=5&per=0&spd=6&pit=5&aue=3'; // console.log(JSON.stringify(resSave)); console.log(url); // #ifdef APP-PLUS // 下面这两句是重点, 拿本本记下.............. if (innerAudioContext != undefined) { innerAudioContext.stop(); } innerAudioContext = uni.createInnerAudioContext(); // 上面这两句是重点, 拿本本记下.............. this.pageValue = this.value; console.log('src是空的吗 -----------' + url) innerAudioContext.stop(); innerAudioContext.src = url; innerAudioContext.play();// if (url != '') {// innerAudioContext.play();// } else {// console.log('src是空的吗 -----------' + url)// uni.showToast({// title: 'src是空的 不能执行',// mask: true,// duration: 2000,// icon: "none"// });// // return// } innerAudioContext.onPlay(() => { console.log('开始播放') }) innerAudioContext.onStop(() => { console.log('i am onStop') //播放停止,销毁该实例 // innerAudioContext.stop() }) innerAudioContext.onEnded(() => { console.log('i am onEnded') //播放结束,销毁该实例 // innerAudioContext.stop() console.log('已执行destory()') }) innerAudioContext.onError((res) => { console.log(result.errMsg) console.log(result.errCode) // innerAudioContext.stop() }) // #endif // #ifdef MP-WEIXIN var that = this; uni.downloadFile({ url: url, success(res) { if (innerAudioContext != undefined) { innerAudioContext.stop(); } innerAudioContext = uni.createInnerAudioContext(); that.pageValue = that.value; innerAudioContext.src = res.tempFilePath; innerAudioContext.play(); innerAudioContext.onPlay(() => { console.log('开始播放') }) innerAudioContext.onStop(() => { console.log('i am onStop') innerAudioContext.stop() //播放停止,销毁该实例 innerAudioContext.stop() }) innerAudioContext.onEnded(() => { console.log('i am onEnded') //播放结束,销毁该实例 innerAudioContext.stop() console.log('已执行destory()') }) innerAudioContext.onError((res) => { console.log(result.errMsg) console.log(result.errCode) innerAudioContext.stop() }) } }) // #endif }, }, }</script>
Wenn Sie die beiden Codezeilen oben sehen, denken Sie daran, sie nicht zu zerstören, sondern führen Sie einfach die Objektwiedergabemethode direkt aus. Diese Methode verwendet ein Objekt, das standardmäßig den ursprünglichen Quellpfad ersetzt und direkt abgespielt werden kann.
Ein weiterer Grund ist, dass die Version des Entwicklungstools zu alt ist, hauptsächlich aufgrund dieser Version Prozess, weniger Probleme.
Der folgende Code kann kopiert werden
<script> const innerAudioContext = uni.createInnerAudioContext();data() { return {```}; }, methods: { hechengAudio(audioPram) { // innerAudioContext.stop(); var dd = audioPram.replace(/<\/?.+?>/g, ""); audioPram = dd.replace(/ /g, ""); //dds为得到后的内容 if (audioPram != this.startAudio) { this.startPage = false; } var url = this.getMp3 + 'cuid=' + uni.getSystemInfoSync().version + '&lan=zh&ctp=1&tok=' + this.$token() + '&tex=' + audioPram + '&vol=5&per=0&spd=6&pit=5&aue=3'; // console.log(JSON.stringify(resSave)); console.log(url); // #ifdef APP-PLUS this.pageValue = this.value; console.log('src是空的吗 -----------' + url) innerAudioContext.stop(); innerAudioContext.src = url; innerAudioContext.play(); innerAudioContext.onPlay(() => { console.log('开始播放') }) innerAudioContext.onStop(() => { console.log('i am onStop') //播放停止,销毁该实例 // innerAudioContext.stop() }) innerAudioContext.onEnded(() => { console.log('i am onEnded') //播放结束,销毁该实例 // innerAudioContext.stop() console.log('已执行destory()') }) innerAudioContext.onError((res) => { console.log(result.errMsg) console.log(result.errCode) // innerAudioContext.stop() }) // #endif // #ifdef MP-WEIXIN var that = this; uni.downloadFile({ url: url, success(res) { if (innerAudioContext != undefined) { innerAudioContext.stop(); } innerAudioContext = uni.createInnerAudioContext(); that.pageValue = that.value; innerAudioContext.src = res.tempFilePath; innerAudioContext.play(); innerAudioContext.onPlay(() => { console.log('开始播放') }) innerAudioContext.onStop(() => { console.log('i am onStop') innerAudioContext.stop() //播放停止,销毁该实例 innerAudioContext.stop() }) innerAudioContext.onEnded(() => { console.log('i am onEnded') //播放结束,销毁该实例 innerAudioContext.stop() console.log('已执行destory()') }) innerAudioContext.onError((res) => { console.log(result.errMsg) console.log(result.errCode) innerAudioContext.stop() }) } }) // #endif }, }, }</script>
Empfohlen: „uniapp-Tutorial“
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem eines Tonwiedergabefehlers in Uniapp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!