Vue.js 检查v-dialog是否打开并停止音频播放
我想在v-dialog上有一个监视程序,在对话框打开时停止播放音频文件。通常我会让v-model=“dialogVisible”然后添加一块手表。但是由于我有多个对话框,所以我不得不使用v-model=“media.show”作为对话框Vue.js 检查v-dialog是否打开并停止音频播放,vue.js,vuetify.js,Vue.js,Vuetify.js,我想在v-dialog上有一个监视程序,在对话框打开时停止播放音频文件。通常我会让v-model=“dialogVisible”然后添加一块手表。但是由于我有多个对话框,所以我不得不使用v-model=“media.show”作为对话框 this.audioPlayer.pause() this.isPlaying = false 我现在如何检查对话框何时打开,然后将上述设置设置为在对话框打开时阻止播放音频文件 <v-list-item-action>
this.audioPlayer.pause()
this.isPlaying = false
我现在如何检查对话框何时打开,然后将上述设置设置为在对话框打开时阻止播放音频文件
<v-list-item-action>
<div v-if="media.url.includes('mp3')">
<v-btn
v-if="isPlaying && (currentMedia.id === media.id)"
icon
@click="pause"
>
<v-icon>pause</v-icon>
</v-btn>
<v-btn
v-else
icon
@click="play(media)"
>
<v-icon>play_arrow</v-icon>
</v-btn>
</div>
<div v-else>
<v-dialog
v-model="media.show"
persistent
width="800px"
:retain-focus="false"
>
<template v-slot:activator="{ on, attrs }">
<v-btn
icon
v-bind="attrs"
v-on="on"
>
<v-icon>mdi-open-in-new</v-icon>
</v-btn>
</template>
<v-card>
<Video
v-if="media.show"
:video-url="media.url"
/>
</v-card>
<v-card-actions>
<v-spacer />
<v-btn
color="primary"
text
@click="media.show = false"
>
Close
</v-btn>
</v-card-actions>
</v-dialog>
</div>
</v-list-item-action>
暂停
弹箭
mdi在纽约开放
接近
您所能做的就是为一个客户服务。在您的情况下,media.show
。当它改变时,会触发对话框显示。所以,当你观看道具改变时,你可以触发一个你可以做任何事情的函数。在这种情况下,当该值变为真时,我们将暂停音乐,然后将其恢复为假
观察:{
媒体:{
深:是的,
处理程序(newVal){
//显示模态
如果(newval.show){
this.audioPlayer.pause()
this.isplay=false
}否则{
//模式关闭时恢复(可选)(
这个.audioPlayer.play();
this.isplay=false;
}
}
}
}
谢谢。我确实尝试过,但当v-dialog打开时,这似乎不会触发。Hello,我更新了我的答案,以更可靠的方式处理对象的属性。有时,我之前详述的字符串语法无法正常工作。现在使用deep:true
应该可以正常工作。同时检查consoles的错误。如果有任何让我知道他们是什么,我可以帮助调试,并得到你的答案,工作