Код этой кнопки-переключателя отображается в верхней части сайта, над которым я работал
<v-radio-group v-model="changeQualityVideo" :mandatory="false">
<v-radio color="success" :name="1" :label="tt('Global')" :value="1" v-bind:class="[quality === 'hd' ? 'is--active' : '']"></v-radio>
<v-radio color="success" :name="2" :label="tt('Local')" :value="2" v-bind:class="[quality === 'sd' ? 'is--active' : '']"></v-radio>
</v-radio-group>
Цель этой функции - установить URL-адрес источника видео.Если пользователь выбирает глобальный, качество будет HD на видео текущей страницы и на остальных видео сайта.Если пользователь выберет локальный, качество будет SD на видео текущей страницы и на остальных видео сайта.
Однако я не могу заставить мое вычисленное свойство изменить URL-адрес набыть широким.Изменяется только на текущей странице, но не на других страницах.
Мое вычисленное свойство таково:
computed: {
changeQualityVideo: {
get: function () {
let _s = this
return _s.$store.state.videoQuality
},
set: function (changeQualityVideo) {
let _s = this
_s.$store.state.videoQuality = changeQualityVideo
}
},
reloadPlayer: function () {
return this.$store.state.currentTableInfo.TableName.split('-')[1]
}
},
watch: {
changeQualityVideo (value) {
let _s = this
let sources = ''
if (value === 2) {
this.$store.state.urls.video_url = 'http://local.stream.com/'
sources = {src: this.$store.state.urls.video_url + 'hls/mds' + _s.reloadPlayer + 'table1.m3u8', type: 'application/x-mpegURL'}
} else if (value === 1) {
this.$store.state.urls.video_url = 'http://global.stream.com/'
sources = {src: this.$store.state.urls.video_url + 'hls/mds' + _s.reloadPlayer + 'table1.m3u8', type: 'application/x-mpegURL'}
}
_s.$store.state.hlsPlayer.src(sources)
_s.$store.state.hlsPlayer.load()
_s.$store.state.hlsPlayer.play()
}
}
Моя теория состоит в том, что мне нужно поместить свойство get в свойство watch.Или свойство get внутри пункта watch.Но оба не уверены.
ОБНОВЛЕНИЕ: store.js это:
const store = () => {
return new Vuex.Store({
state: {
urls: {
<video>_api: <api>
video_url:
},
hlsPlayer: null
}