ホームページ > 記事 > ウェブフロントエンド > vue-dplayerでhls再生を実装する手順を詳しく解説
今回は、vue-dplayer で hls 再生を実装するための手順について詳しく説明します。vue-dplayer で hls 再生を実装するための 注意事項 について、実際のケースを見てみましょう。
原因
以前「vue2.0+vue-video-player で hls 再生を実装」という記事を書きましたが、その中で、vue-video-player を使用する前に、vue-dplayer を使用して hls 再生を実装しようとしましたが、その時は時間が厳しかったと述べました。それでもできなかった場合は計画が変更されます。今すぐ完了してください。スタート
依存関係をインストールしますnpm install vue-dplayer -Sコンポーネント HelloWorld.vue を書く
<template> <p> <d-player></d-player> </p> </template> <script> import VueDPlayer from './VueDPlayerHls'; export default { name: 'HelloWorld', data () { return { msg: 'Welcome to Your Vue.js App', video: { url: 'https://logos-channel.scaleengine.net/logos-channel/live/biblescreen-ad-free/chunklist_w630020335.m3u8', pic: 'http://static.smartisanos.cn/pr/img/video/video_03_cc87ce5bdb.jpg', type: 'hls' }, autoplay: false, player: null, contextmenu: [ { text: 'GitHub', link: 'https://github.com/MoePlayer/vue-dplayer' } ] } }, components: { 'd-player': VueDPlayer }, methods: { play() { console.log('play callback') } }, mounted() { this.player = this.$refs.player.dp; // console.log(this.player); var hls = new Hls(); hls.loadSource('https://logos-channel.scaleengine.net/logos-channel/live/biblescreen-ad-free/chunklist_w630020335.m3u8'); hls.attachMedia(this.player); } } </script> <!-- Add "scoped" attribute to limit css to this component only --> <style> </style>hls.jsを紹介します 当初はインポートを使用して導入されましたが、実行中にエラーが報告されました。そのため、まずindex.htmlのscriptタグを使用して導入します。
りー
注意:
DPlayer のデモページのコードによると、hls をサポートしたい場合は video.type を「hls」に設定する必要があるようですが、修正したところ再生できないことが分かりました。そこでソースコードを調べたところ、ソースコード内に次の場所を見つけました: 言い換えれば、コンポーネントに何を入力しても、実際には新しい Dplayer インスタンスを作成するために「normal」を使用していることになります。 ソースコードを変更する コンポーネント VueDPlayerHls.vue をカスタマイズし、ソース コードをコピーして、問題を次のように変更します。 type: this.video.typenbsp;html> <meta> <meta> <title>vue-dplayer-hls</title> <p></p> <!-- built files will be auto injected --> <script></script>新しいコンポーネントを元のコンポーネント (HelloWorld.vue) にインポートします
<template> <p></p> </template> <script> require('../../node_modules/dplayer/dist/DPlayer.min.css'); import DPlayer from 'DPlayer' export default { props: { autoplay: { type: Boolean, default: false }, theme: { type: String, default: '#FADFA3' }, loop: { type: Boolean, default: true }, lang: { type: String, default: 'zh' }, screenshot: { type: Boolean, default: false }, hotkey: { type: Boolean, default: true }, preload: { type: String, default: 'auto' }, contextmenu: { type: Array }, logo: { type: String }, video: { type: Object, required: true, validator(value) { return typeof value.url === 'string' } } }, data() { return { dp: null } }, mounted() { const player = this.dp = new DPlayer({ element: this.$el, autoplay: this.autoplay, theme: this.theme, loop: this.loop, lang: this.lang, screenshot: this.screenshot, hotkey: this.hotkey, preload: this.preload, contextmenu: this.contextmenu, logo: this.logo, video: { url: this.video.url, pic: this.video.pic, type: this.video.type } }) player.on('play', () => { this.$emit('play') }) player.on('pause', () => { this.$emit('pause') }) player.on('canplay', () => { this.$emit('canplay') }) player.on('playing', () => { this.$emit('playing') }) player.on('ended', () => { this.$emit('ended') }) player.on('error', () => { this.$emit('error') }) } } </script>再生を実現
この記事の事例を読んだ後、あなたはその方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
ajax動的割り当てデータグラフ
Reactコンポーネントのパフォーマンス最適化の側面とは何ですか
以上がvue-dplayerでhls再生を実装する手順を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。