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
Einführung Heute habe ich gelernt, wie man mit Py...
In diesem Artikel wird anhand eines Beispiels ein...
Vorwort: Vor Kurzem werde ich mit meinen Partnern...
Inhaltsverzeichnis 1. Verwandte Binlog-Konfigurat...
MySQL 5.7.20 Zip-Installation, der spezifische In...
Inhaltsverzeichnis Hintergrund Problemort Weitere...
Laden Sie zunächst die grüne kostenlose Installat...
Inhaltsverzeichnis Funktionskomponenten Aufteilun...
Ich werde nicht viel Unsinn erzählen, schauen wir...
1 Installation Laden Sie die entsprechende entpac...
Für Linux-Systemadministratoren ist es von entsch...
Gestern Abend habe ich mir eine Interviewfrage ang...
Das Datenbankverwaltungssystem MariaDB ist ein Zw...
In diesem Artikelbeispiel wird der spezifische Co...
Überprüfen Sie die Python-Version mit python -V. ...