LoginSignup
2
1

More than 5 years have passed since last update.

Androidのvideoタグでプレビューを簡単に表示する方法

Posted at

以下、Vue.jsを前提にコード載せていますので、bindされている部分などは適宜読み替えてください。

Safari,iPhoneの場合

#t=〇〇を使う

こんな感じ。

<video controls="true" playsinline >
  <!-- t=0だとプレビュー画像が表示されないので0.1秒の部分をプレビューとして指定 -->
  <source v-if="src" :src="src+'#t=0.1'" />
     あなたのブラウザでは動画の再生がサポートされていません。
</video>

少し謎な部分としては、t=0にするとプレビューが表示されずに真っ黒でした。
理由わかる人いたら教えてください。

また、自動再生する場合には autoplay="true" muted を付け加えればOK
iOS11ではmutedを指定しなければ自動再生はされません。

Androidの場合

上記と同じ指定だと、真っ黒なまま。たまにキャッシュが効いてか表示されることはあるものの、基本、表示されない。

load()関数を使う

vue.jsを使っているのでライフサイクルのmountedでvideoタグのobjectを取得してload()を呼び出しています。Domが取得できるタイミングであれば、他のタイミングでも可能だと思います。

mounted() {
  const videoObj = document.getElementsByTagName("video");
  if (videoObj && videoObj[0]) {
    videoObj[0].load();
  }
}

まとめ

とりあえず上記の二つで、iOSでもAndroidでもChromeでもSafariでもプレビューがでるvideoタグを書くことができました。何かの参考になれば幸いです。(IEは知りません。。。)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1