Lösung: Binden Sie das Klickereignis an die Audiokomponente und lösen Sie die Wiedergabe- und Pausenmethoden manuell aus! Codeausschnitt: WXML-Datei <!-- Es handelt sich um einen Sprachanruf, es liegt ein Anrufprotokoll vor und die Anrufbeschreibung enthält nicht „verpasst“ --> <Ansichtsklasse="Referenz" wx:if="{{itemList.activity_type === 'phone' && itemList.activity_reference_id && tool.indexOf(itemList.comment,'missed') === -1 }}"> <!-- Sprachwiedergabe--> <van-button class="ref-btn" wx:if="{{audioResourceMaps[itemList.activity_reference_id] === undefiniert}}" wird geladen="{{itemList.activity_reference_id === currentGettingReferenceId}}" Symbol="abspielen" Typ="info" einfach Datenreferenz-ID = "{{itemList.activity_reference_id}}" bindtap = "getReference"> </van-button> <Ansicht wx:sonst Klasse="Audio-Box"> <!-- Sprachwiedergabe pausieren --> <van-button class="ref-btn" wx:if="{{audioResourceMaps[itemList.activity_reference_id]}}" Datenreferenz-ID = "{{itemList.activity_reference_id}}" icon="pause" type="info" plain bindtap="pauseAudio"/> <!-- Klicken Sie auf „Keine Anrufaufzeichnung“--> <span wx:else class="no-audio-text">Keine Anrufaufzeichnung gefunden</span> </Ansicht> </Ansicht> WXSS-Datei .Referenz { Rand oben: 20rpx; Höhe: 100%; Polsterung: 5rpx; Box-Größe: Rahmenbox; } .ref-btn { Breite: 80rpx; Höhe: 80rpx; Anzeige: Flex; } .ref-btn-Schaltfläche { Breite: 80rpx; Höhe: 80rpx; Randradius: 50 %; } js-Datei /** * Ausgangsdaten der Komponente */ Daten: { currentGettingReferenceId: null, //Die aktuell abgespielte Audio-ID audioResourceMaps: {}, //Liste der angeklickten Audios isPause:false, //Pause oder nicht}, /** * Komponentenlebenszyklus */ Lebensdauern: angehängt: Funktion () { // Da es sich um eine Unterkomponente handelt, müssen Sie die Instanz hier abrufen: this.audioContext = wx.createInnerAudioContext(); }, getrennt: Funktion () { // Wiedergabe von this.stopAudio() beenden // Wird ausgeführt, wenn die Komponenteninstanz aus dem Seitenknotenbaum entfernt wird}, }, Methoden: { // Die Aufnahme abrufen getReference(e) { let id = e.target.dataset.referenceId wenn(id != diese.Daten.currentGettingReferenceId){ dies.stopAudio() } dies.setData({ aktuelleGettingReferenceId:id }) // Klicken Sie auf die Schnittstelle, um die Aufzeichnungs-URL zu erhalten. Die Schnittstellenanforderung wird gemäß der eigenen Kapselung WXAPI.getResourceUrl ( geschrieben. `/Gespräch/Gesprächssitzung/${id}/`, { Datentyp: "alle", }).then(({resource_url}) => { console.log('Audioadresse ====',Ressourcen-URL,) let url = resource_url && resource_url.indexOf('https://') > -1? encodeURI(resource_url) : null diese.data.audioResourceMaps[id] = URL; wenn(Ressourcen-URL) dies.playAudio(ID,URL) dies.setData({ audioResourceMaps: this.data.audioResourceMaps }) console.log('Abgespielte Liste =====',this.data.audioResourceMaps) }).fangen(Funktion (e) { console.log(e) }) }, // Pause pauseAudio(){ dies.setData({ istPause: !this.data.isPause }) let id = diese.Daten.currentGettingReferenceId console.log(id,'Wiedergabe pausiert ID') const innerAudioContext = dieser.audioContext wenn(diese.Daten.istPause){ innerAudioContext.pause() console.log('Wiedergabe pausieren') }anders{ innerAudioContext.play() console.log('Weiterspielen') } }, // Wiedergabe beenden stopAudio(){ const innerAudioContext = dieser.audioContext innerAudioContext.stop() let obj = this.data.audioResourceMaps für (let item in obj) { Objekt [Element] löschen } // Um die Wiedergabe zu stoppen, löschen Sie die Audioadresse, die der Playlist-ID entspricht this.setData({ audioResourceMaps: obj, currentGettingReferenceId:null }) console.log('Abspielen beenden') }, // Abspielen playAudio(id,url) { const innerAudioContext = dieser.audioContext console.log(URL, „Audioadresse“) wenn(URL){ innerAudioContext.src = URL innerAudioContext.play() innerAudioContext.onPlay(() => { console.log('Starten Sie die Wiedergabe') }) innerAudioContext.onTimeUpdate(() => { console.log(innerAudioContext.duration,'Gesamtdauer') console.log(innerAudioContext.currentTime,'Aktueller Wiedergabefortschritt') }) setzeTimeout(() => { console.log(innerAudioContext.duration,'Gesamtdauer') console.log(innerAudioContext.currentTime,'Aktueller Wiedergabefortschritt') }, 500) innerAudioContext.onEnded(() => { let obj = this.data.audioResourceMaps für (let item in obj) { Objekt [Element] löschen } dies.setData({ audioResourceMaps: obj, currentGettingReferenceId:null }) console.log('Wiedergabe abgeschlossen') }) innerAudioContext.onError((res) => { console.log(res.errMsg) console.log(res.errCode) }) } } Rendern ⚠️Um vant im WeChat-Applet zu verwenden, müssen Sie in der JSON-Datei darauf verweisen, sonst wird das Tag nicht angezeigt Ich habe es in der Datei app.json zitiert und es ist global verfügbar "Komponenten verwenden": { "van-button": "@vant/weapp/button/index", "van-icon": "@vant/weapp/icon/index", } Offizielle Website-Dokumentation: developers.weixin.qq.com/miniprogram… Zusammenfassen Dies ist das Ende dieses Artikels zur Lösung des Problems, dass die Audiokomponente des WeChat-Miniprogramms auf der iOS-Seite nicht abgespielt werden kann. Weitere relevante Inhalte zur Wiedergabe der Audiokomponente des Miniprogramms auf der iOS-Seite finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Ein seltener Fehler und eine Lösung für die vollständige SQL Server-Sicherung
>>: Grundlegende Schritte zur Verwendung einer Mysql-SSH-Tunnelverbindung
Frage: Bei der Entwicklung des Alice-Verwaltungss...
Beziehung zwischen MySQL und MariaDB Das Datenban...
Inhaltsverzeichnis 1. Neue Verwendung der Uhr 1.1...
1. Installation Suchen Sie über DockerHub nach de...
Tabellenname und Felder –1. Studentenliste Studen...
In letzter Zeit wurde der Server häufig mit Brute...
In diesem Artikel wird die spezifische Methode zu...
Vorwort binlog ist eine binäre Protokolldatei, di...
Was ist SSH? Administratoren können sich remote a...
Das 10-tägige Tutorial verwendet eine äußerst ver...
Hintergrund Da die Anzahl der Anwendungssysteme w...
1 Starten Sie den Docker-Dienst Zuerst müssen Sie...
Inhaltsverzeichnis 1: Bereiten Sie das https-Zert...
Die Festlegung einer Begrenzung der Anzahl von Be...
Der einfache Timer von Vue dient Ihnen als Refere...