diff --git a/packages/frontend/src/components/MkMediaBanner.vue b/packages/frontend/src/components/MkMediaBanner.vue index 718ce80e0d68cee7c584137bc1e5e70a1603b2bf..c4af1ee8d0641642cc411d13ff282f9dc007d6cc 100644 --- a/packages/frontend/src/components/MkMediaBanner.vue +++ b/packages/frontend/src/components/MkMediaBanner.vue @@ -6,15 +6,14 @@ <span>{{ $ts.clickToShow }}</span> </div> <div v-else-if="media.type.startsWith('audio') && media.type !== 'audio/midi'" class="audio"> - <audio - ref="audioEl" - class="audio" - :src="media.url" - :title="media.name" - controls - preload="metadata" - @volumechange="volumechange" - /> + <VuePlyr :options="{ volume: 0.5 }"> + <audio controls preload="metadata"> + <source + :src="media.url" + :type="media.type" + /> + </audio> + </VuePlyr> </div> <a v-else class="download" @@ -31,7 +30,9 @@ <script lang="ts" setup> import { onMounted } from 'vue'; import * as misskey from 'misskey-js'; +import VuePlyr from 'vue-plyr'; import { ColdDeviceStorage } from '@/store'; +import 'vue-plyr/dist/vue-plyr.css'; const props = withDefaults(defineProps<{ media: misskey.entities.DriveFile; @@ -55,7 +56,11 @@ onMounted(() => { width: 100%; border-radius: 4px; margin-top: 4px; - overflow: hidden; + overflow: clip; + + --plyr-color-main: var(--accent); + --plyr-audio-controls-background: var(--bg); + --plyr-audio-controls-color: var(--accentLighten); > .download, > .sensitive { @@ -93,10 +98,8 @@ onMounted(() => { } > .audio { - .audio { - display: block; - width: 100%; - } + border-radius: 8px; + overflow: clip; } } </style> diff --git a/packages/frontend/src/components/MkMediaVideo.vue b/packages/frontend/src/components/MkMediaVideo.vue index 2c24c16f5764ad35b363861e2dc7c66c195e584a..979c3eed285242e5e98816c059e95a0b66adf198 100644 --- a/packages/frontend/src/components/MkMediaVideo.vue +++ b/packages/frontend/src/components/MkMediaVideo.vue @@ -6,7 +6,7 @@ </div> </div> <div v-else class="kkjnbbplepmiyuadieoenjgutgcmtsvu"> - <vue-plyr> + <VuePlyr :options="{ volume: 0.5 }"> <video controls :data-poster="video.thumbnailUrl" @@ -17,7 +17,7 @@ :type="video.type" /> </video> - </vue-plyr> + </VuePlyr> <i class="ti ti-eye-off" @click="hide = true"></i> </div> </template>