0
0
Fork 0
mirror of https://github.com/VueTubeApp/VueTube synced 2024-11-29 06:33:05 +00:00
VueTube/NUXT/components/Player/quality.vue

97 lines
2.6 KiB
Vue
Raw Normal View History

2022-05-28 05:16:27 +00:00
<template>
2022-05-29 18:13:09 +00:00
<div>
<v-bottom-sheet
v-model="sheet"
:attach="$parent.$refs.vidcontainer"
2022-06-09 16:39:44 +00:00
style="z-index: 777777"
2022-05-29 18:13:09 +00:00
scrollable
>
<template #activator="{ on, attrs }">
<v-btn
fab
text
small
color="white"
v-bind="attrs"
v-on="on"
>
{{
sources.find((src) => src.url == currentSource.src).qualityLabel
? sources.find((src) => src.url == currentSource.src).qualityLabel
: sources.find((src) => src.url == currentSource.src).quality
}}
2022-05-29 18:13:09 +00:00
</v-btn>
</template>
2022-06-07 18:39:26 +00:00
<v-card class="background">
<v-subheader
v-touch="{
down: () => (sheet = false),
}"
>
Quality for current video
<v-spacer />
<v-btn fab text small color="white" @click="sheet = false">
2022-06-07 18:39:26 +00:00
<v-icon>mdi-close</v-icon>
</v-btn>
</v-subheader>
<v-divider />
<v-card-text
style="max-height: 50vh; flex-direction: column !important"
class="pa-0 d-flex flex-column-reverse"
>
2022-05-29 18:42:39 +00:00
<v-list-item
v-for="src in sources"
:key="src"
two-line
@click="(sheet = false), $emit('quality', src.url)"
2022-05-29 18:42:39 +00:00
>
<v-list-item-avatar>
<v-icon
:color="
currentSource.src === src.url
2022-05-29 18:42:39 +00:00
? 'primary'
: $vuetify.theme.dark
? 'background lighten-2'
: 'background darken-2'
"
v-text="
currentSource.src === src.url
2022-05-30 01:44:51 +00:00
? 'mdi-radiobox-marked'
: 'mdi-radiobox-blank'
2022-05-29 18:42:39 +00:00
"
></v-icon>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>
{{ src.qualityLabel ? src.qualityLabel : "" }} ({{
src.quality
}}) {{ (src.bitrate / 1000000).toFixed(2) }}Mbps
</v-list-item-title>
<v-list-item-subtitle>
{{ src.mimeType }} {{ src.averageBitrate }}
</v-list-item-subtitle>
</v-list-item-content>
2022-05-29 18:42:39 +00:00
</v-list-item>
2022-05-29 18:13:09 +00:00
</v-card-text>
</v-card>
</v-bottom-sheet>
</div>
2022-05-28 05:16:27 +00:00
</template>
2022-05-29 18:13:09 +00:00
<script>
2022-05-29 18:13:09 +00:00
export default {
props: {
currentSource: {},
sources: {
type: Array,
required: true,
},
},
emits: ["quality"],
2022-05-29 18:13:09 +00:00
data: () => ({
sheet: false,
}),
};
</script>