Vue.jsで<video>
タグを使用する際に、サムネイルが表示されない場合の対処法についてまとめました。特に、src="url#t=0.1"
のようにクエリパラメータを追加することで解決する方法を紹介します。
Vue.jsの<video>
タグでサムネイルが表示されないときの対処法
🔍 問題
Vue.jsで<video>
タグを使用して動画を表示しようとすると、以下の問題が発生することがあります。
- 動画のサムネイル(ポスター画像)が表示されない
poster
属性を指定しても機能しないcontrols
を付けても、最初のフレームが表示されない
✅ 解決策1:#t=0.1
をURLに追加する
ブラウザによっては、動画の最初のフレームを読み込む際にサムネイルをうまく表示できない場合があります。この問題を回避するために、動画のURLに #t=0.1
を追加すると解決することがあります。
<template> <video :src="videoSrc" controls></video> </template> <script setup> import { ref } from 'vue'; const videoSrc = ref('https://example.com/sample.mp4#t=0.1'); </script>
📌 なぜ#t=0.1
が有効なのか?
#t=0.1
は動画の開始位置を0.1秒に設定するURLフラグメントです。
この指定をすると、ブラウザが最初のフレームではなく、0.1秒後のフレームを読み込もうとするため、サムネイルが正しく表示されることが多いです。
✅ 解決策2:preload="metadata"
を指定する
<video>
タグに preload="metadata"
を指定すると、動画のメタデータ(サムネイルを含む)が適切に読み込まれやすくなります。
<template> <video :src="videoSrc" controls preload="metadata"></video> </template>
✅ 解決策3:poster
属性を手動で設定する
サムネイルを確実に表示させたい場合、poster
属性を使って静的な画像を指定するのも有効です。
<template> <video :src="videoSrc" controls poster="https://example.com/sample-thumbnail.jpg"></video> </template>
📝 まとめ
方法 | 解決策 | メリット |
---|---|---|
#t=0.1 を追加 | src="url#t=0.1" を設定 | 簡単で効果が高い |
preload="metadata" | メタデータを先に読み込む | 動画の情報を早く取得できる |
poster 属性を設定 | 静的なサムネイルを指定 | 確実にサムネイルを表示できる |
サムネイルが表示されない問題が発生した場合は、上記の方法を試してみてください!🚀