위 챗 애플 릿 audio 구성 요소 가 ios 에서 재생 할 수 없 는 해결 방법
코드 세 션:
wxml 파일
<!-- , , ' ' -->
<view class="reference"
wx:if="{{itemList.activity_type === 'phone' && itemList.activity_reference_id && tool.indexOf(itemList.comment,' ') === -1 }}">
<!-- -->
<van-button class="ref-btn" wx:if="{{audioResourceMaps[itemList.activity_reference_id] === undefined}}"
loading="{{itemList.activity_reference_id === currentGettingReferenceId}}" icon="play" type="info" plain
data-reference-id="{{itemList.activity_reference_id}}" bindtap="getReference">
</van-button>
<view wx:else class="audio-box">
<!-- -->
<van-button class="ref-btn" wx:if="{{audioResourceMaps[itemList.activity_reference_id]}}"
data-reference-id="{{itemList.activity_reference_id}}"
icon="pause" type="info" plain bindtap="pauseAudio"/>
<!-- -->
<span wx:else class="no-audio-text"> </span>
</view>
</view>
wxss 파일
.reference {
margin-top: 20rpx;
height: 100%;
padding: 5rpx;
box-sizing: border-box;
}
.ref-btn {
width: 80rpx;
height: 80rpx;
display: flex;
}
.ref-btn button {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
}
js 파일
/**
*
*/
data: {
currentGettingReferenceId: null, // id
audioResourceMaps: {}, //
isPause:false, //
},
/**
*
*/
lifetimes: {
attached: function () {
//
this.audioContext = wx.createInnerAudioContext();
},
detached: function () {
//
this.stopAudio()
//
},
},
methods: {
//
getReference(e) {
let id = e.target.dataset.referenceId
if(id != this.data.currentGettingReferenceId){
this.stopAudio()
}
this.setData({
currentGettingReferenceId:id
})
// url 。
WXAPI.getResourceUrl(
`/conversation/conversationsession/${id}/`, {
data_type: 'all',
}).then(({resource_url}) => {
console.log(' ====',resource_url,)
let url = resource_url && resource_url.indexOf('https://') > -1? encodeURI(resource_url) : null
this.data.audioResourceMaps[id] = url;
if(resource_url) this.playAudio(id,url)
this.setData({
audioResourceMaps: this.data.audioResourceMaps
})
console.log(' =====',this.data.audioResourceMaps)
}).catch(function (e) {
console.log(e)
})
},
//
pauseAudio(){
this.setData({
isPause: !this.data.isPause
})
let id = this.data.currentGettingReferenceId
console.log(id,' id')
const innerAudioContext = this.audioContext
if(this.data.isPause){
innerAudioContext.pause()
console.log(' ')
}else{
innerAudioContext.play()
console.log(' ')
}
},
//
stopAudio(){
const innerAudioContext = this.audioContext
innerAudioContext.stop()
let obj = this.data.audioResourceMaps
for(let item in obj){
delete obj[item]
}
// id
this.setData({
audioResourceMaps: obj,
currentGettingReferenceId:null
})
console.log(' ')
},
//
playAudio(id,url) {
const innerAudioContext = this.audioContext
console.log(url, ' ')
if(url){
innerAudioContext.src = url
innerAudioContext.play()
innerAudioContext.onPlay(() => {
console.log(' ')
})
innerAudioContext.onTimeUpdate(() => {
console.log(innerAudioContext.duration,' ')
console.log(innerAudioContext.currentTime,' ')
})
setTimeout(() => {
console.log(innerAudioContext.duration,' ')
console.log(innerAudioContext.currentTime,' ')
}, 500)
innerAudioContext.onEnded(() => {
let obj = this.data.audioResourceMaps
for(let item in obj){
delete obj[item]
}
this.setData({
audioResourceMaps: obj,
currentGettingReferenceId:null
})
console.log(' ')
})
innerAudioContext.onError((res) => {
console.log(res.errMsg)
console.log(res.errCode)
})
}
}
효과 도⚠️위 챗 애플 릿 에서 vant 를 사용 하려 면.json 파일 에서 참조 해 야 합 니 다.그렇지 않 으 면 탭 이 표시 되 지 않 습 니 다.
app.json 파일 에서 가 져 왔 습 니 다. 전역 사용 가능
"usingComponents": {
"van-button": "@vant/weapp/button/index",
"van-icon": "@vant/weapp/icon/index",
}
홈 페이지 문서:developers.weixin.qq.com/miniprogram..총결산
위 챗 애플 릿 audio 구성 요소 가 ios 에서 재생 할 수 없 는 해결 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 애플 릿 audio 구성 요소 ios 에서 재생 되 는 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
애플 릿 이미지 새로 고침, nginx 재 작성 url 제거 인자이전에 nginx 로 이미지 서버 를 만 들 었 는데 전단 에 작은 프로그램 을 사 용 했 습 니 다. 작은 프로그램 이 출시 된 후에 그림 이 새로 고침 되 지 않 는 것 을 발 견 했 습 니 다. 조사 한 결과 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.