ホームページ ウェブフロントエンド Vue.js Vue ドキュメントでのオーディオおよびビデオ再生コンポーネントの実装プロセスの詳細な説明

Vue ドキュメントでのオーディオおよびビデオ再生コンポーネントの実装プロセスの詳細な説明

Jun 20, 2023 pm 08:58 PM
vue コンポーネント化 オーディオとビデオの再生

Vue.js は、ユーザー インターフェイスを構築するための先進的な JavaScript フレームワークとして、あらゆる面で優れたパフォーマンスとアプリケーションを備えています。 Vue.js ドキュメントには、オーディオおよびビデオ再生コンポーネントの実装プロセスも記載されており、フロントエンド開発者に便利な操作方法を提供します。次に、Vue.js ドキュメント内のオーディオおよびビデオ再生コンポーネントの実装プロセスについて詳しく学習します。

まず、Vue プロジェクトでコンポーネントを参照する必要があります。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<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>

ログイン後にコピー

その中で、AudioPlayerVideoPlayer は結合でき、それらはPlayer という名前のコンポーネントを作成し、audio または video コンポーネントとしてレンダリングします。この Player コンポーネントのコードは次のとおりです。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

<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>

ログイン後にコピー

この Player コンポーネントは、props を使用して、渡す必要があるパラメーターを受け取ります。 src (オーディオおよびビデオ ファイルのパス)、controls (コントロール バーを表示するかどうか)、autoplay (自動的に再生するかどうか)、loop を含む (ループ再生するかどうか) など。次に、getType メソッドを使用してファイル タイプを特定し、対応するタイプに従って audio または video コンポーネントをレンダリングします。

Player コンポーネントでは、slot スロットを使用して子コンポーネントを挿入します。たとえば、前後にテキストやボタンを追加する必要がある場合は、before スロットと after スロットを使用します。 loadedmetadata イベントをバインドした後、loading スロットを使用して「読み込み中...」という文字を表示し、オーディオ ファイルとビデオ ファイルがロードされるのを待ちます。

最後に、次の CSS スタイルを引用して、プレーヤーの外観を設定します:

1

2

3

4

5

6

.player {

  width: 400px;

  height: 300px;

  background-color: black;

  color: white;

}

ログイン後にコピー

ここでは背景色とテキストの色のみが設定されています。実際、プレーヤーは CSS を通じて変更することもできます。 . 詳細設定。

上記の実装プロセスを通じて、オーディオおよびビデオ プレーヤーを Vue プロジェクトに簡単に追加し、さまざまな一般的なオーディオおよびビデオ再生操作を実装できます。 Vue.js が提供するカスタムコンポーネントやスロットを利用することで、プロジェクトに素早く機能を追加でき、開発効率が向上します。

以上がVue ドキュメントでのオーディオおよびビデオ再生コンポーネントの実装プロセスの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

vueでechartを使用する方法 vueでechartを使用する方法 May 09, 2024 pm 04:24 PM

vueでechartを使用する方法

vue におけるエクスポートのデフォルトの役割 vue におけるエクスポートのデフォルトの役割 May 09, 2024 pm 06:48 PM

vue におけるエクスポートのデフォルトの役割

vueでのmap関数の使い方 vueでのmap関数の使い方 May 09, 2024 pm 06:54 PM

vueでのmap関数の使い方

vueのeventと$eventの違い vueのeventと$eventの違い May 08, 2024 pm 04:42 PM

vueのeventと$eventの違い

Vue における onmounted の役割 Vue における onmounted の役割 May 09, 2024 pm 02:51 PM

Vue における onmounted の役割

vueのエクスポートとデフォルトのエクスポートの違い vueのエクスポートとデフォルトのエクスポートの違い May 08, 2024 pm 05:27 PM

vueのエクスポートとデフォルトのエクスポートの違い

vue の onmounted は、react のどのライフサイクルに対応しますか vue の onmounted は、react のどのライフサイクルに対応しますか May 09, 2024 pm 01:42 PM

vue の onmounted は、react のどのライフサイクルに対応しますか

Vueのフックとは何ですか Vueのフックとは何ですか May 09, 2024 pm 06:33 PM

Vueのフックとは何ですか

See all articles