52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
|
import StillImage from '../still-image/still-image.vue'
|
||
|
import fileTypeService from '../../services/file_type/file_type.service.js'
|
||
|
|
||
|
const MediaModal = {
|
||
|
data () {
|
||
|
return {
|
||
|
loopVideo: this.$store.state.config.loopVideo
|
||
|
}
|
||
|
},
|
||
|
components: {
|
||
|
StillImage
|
||
|
},
|
||
|
computed: {
|
||
|
showing () {
|
||
|
return this.$store.state.mediaViewer.activated
|
||
|
},
|
||
|
currentIndex () {
|
||
|
return this.$store.state.mediaViewer.currentIndex
|
||
|
},
|
||
|
currentMedia () {
|
||
|
return this.$store.state.mediaViewer.media[this.currentIndex]
|
||
|
},
|
||
|
type () {
|
||
|
return this.currentMedia ? fileTypeService.fileType(this.currentMedia.mimetype) : null
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
hide () {
|
||
|
this.$store.dispatch('closeMediaViewer')
|
||
|
},
|
||
|
onVideoDataLoad (e) {
|
||
|
if (typeof e.srcElement.webkitAudioDecodedByteCount !== 'undefined') {
|
||
|
// non-zero if video has audio track
|
||
|
if (e.srcElement.webkitAudioDecodedByteCount > 0) {
|
||
|
this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly
|
||
|
}
|
||
|
} else if (typeof e.srcElement.mozHasAudio !== 'undefined') {
|
||
|
// true if video has audio track
|
||
|
if (e.srcElement.mozHasAudio) {
|
||
|
this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly
|
||
|
}
|
||
|
} else if (typeof e.srcElement.audioTracks !== 'undefined') {
|
||
|
if (e.srcElement.audioTracks.length > 0) {
|
||
|
this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default MediaModal
|