Maison > interface Web > Voir.js > le corps du texte

Explication détaillée du processus d'implémentation des composants de lecture audio et vidéo dans les documents Vue

WBOY
Libérer: 2023-06-20 20:58:38
original
3481 Les gens l'ont consulté

Vue.js, en tant que framework JavaScript progressif pour la création d'interfaces utilisateur, offre d'excellentes performances et applications dans tous les aspects. La documentation Vue.js fournit également le processus d'implémentation des composants de lecture audio et vidéo, offrant aux développeurs front-end des méthodes de fonctionnement pratiques. Ensuite, nous en apprendrons plus sur le processus d'implémentation du composant de lecture audio et vidéo dans le document Vue.js.

Tout d'abord, nous devons référencer le composant dans le projet Vue :

<template>
  <div>
    <audio-player :src="audioSrc" :controls="controls" :autoplay="autoplay" :loop="loop"></audio-player>
    <video-player :src="videoSrc" :controls="controls" :autoplay="autoplay" :loop="loop"></video-player>
  </div>
</template>

<script>
  import AudioPlayer from './AudioPlayer.vue'
  import VideoPlayer from './VideoPlayer.vue'

  export default {
    components: {
      AudioPlayer,
      VideoPlayer
    },
    data () {
      return {
        audioSrc: 'audio.mp3',
        videoSrc: 'video.mp4',
        controls: true,
        autoplay: false,
        loop: false
      }
    }
  }
</script>
Copier après la connexion

Parmi eux, AudioPlayer et VideoPlayer peuvent être couplés, et ils introduisent tous deux un composant nommé < code >Player et restituez-le sous la forme d'un composant audio ou video. Le code de ce composant Player est le suivant : AudioPlayerVideoPlayer是可以耦合的,它们都引入了一个名为Player的组件,并将其渲染为一个audiovideo组件。这个Player组件的代码如下:

<template>
  <div>
    <slot name="before"></slot>
    <slot name="after"></slot>
    <slot name="loading">
      <div class="loading"></div>
    </slot>
    <audio v-if="playerType === 'audio'" :src="src" class="player" :controls="controls" :autoplay="autoplay" :loop="loop" @loadedmetadata="loadedmetadata">
      Your browser does not support the audio tag.
    </audio>
    <video v-else-if="playerType === 'video'" :src="src" class="player" :controls="controls" :autoplay="autoplay" :loop="loop" @loadedmetadata="loadedmetadata">
      Your browser does not support the video tag.
    </video>
  </div>
</template>

<script>
  export default {
    name: 'Player',
    props: {
      src: {
        type: String
      },
      controls: {
        type: Boolean,
        default: true
      },
      autoplay: {
        type: Boolean,
        default: false
      },
      loop: {
        type: Boolean,
        default: false
      }
    },
    data () {
      return {
        playerType: this.getType()
      }
    },
    methods: {
      getType () {
        if (/.mp3$/.test(this.src)) {
          return 'audio'
        } else if (/.mp4$/.test(this.src)) {
          return 'video'
        }
      },
      loadedmetadata () {
        this.$emit('duration', this.$refs.player.duration)
      }
    }
  }
</script>

<style scoped>
  .loading {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .loading:after {
    content: 'Loading...';
  }
  .player {
    width: 100%;
  }
</style>
Copier après la connexion

这个Player组件采用了props来接收需要传递的参数,包括src(音视频文件路径)、controls(是否显示控制条)、autoplay(是否自动播放)、loop(是否循环播放)等。接着,通过getType方法判断文件类型,再根据对应的类型来渲染audiovideo组件。

Player组件中,使用了slot插槽来插入子组件。例如,在需要加入一些文本或按钮之前或之后时,则使用beforeafter插槽。而在绑定了loadedmetadata事件之后,则使用loading

.player {
  width: 400px;
  height: 300px;
  background-color: black;
  color: white;
}
Copier après la connexion
Ce composant Player utilise des props pour recevoir les paramètres qui doivent être passés, notamment src (chemin du fichier audio et vidéo), <code>controls (si afficher la barre de contrôle), autoplay (si lire automatiquement), loop (si la lecture en boucle) etc. Ensuite, déterminez le type de fichier via la méthode getType, puis restituez le composant audio ou video en fonction du type correspondant.

Dans le composant Player, le slot slot est utilisé pour insérer des sous-composants. Par exemple, lorsque vous devez ajouter du texte ou des boutons avant ou après, utilisez les emplacements avant et après. Après avoir lié l'événement loadedmetadata, utilisez le slot loading pour afficher les mots "Loading..." pour attendre que les fichiers audio et vidéo soient chargés.

Enfin, définissez l'apparence du lecteur en faisant référence au style CSS suivant :

rrreee

Seules la couleur d'arrière-plan et la couleur du texte sont définies ici. En fait, vous pouvez également définir le lecteur plus en détail via CSS. 🎜🎜Grâce au processus de mise en œuvre ci-dessus, nous pouvons facilement ajouter des lecteurs audio et vidéo au projet Vue et implémenter diverses opérations de lecture audio et vidéo courantes. L'utilisation des composants et des emplacements personnalisés fournis par Vue.js nous permet d'ajouter rapidement des fonctions au projet et d'améliorer l'efficacité du développement. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal