vue项目中使用ckplayer.js封装视频播放组件

1、在index.html中引入ckplayer.js

<script src="ckplayer/ckplayer.js"  charset="utf-8"></script>

资源放在public路径下:

 点击视频播放按钮,弹框播放,效果图如下:如果需要支持进度条快进后退,后台接口需要使用断点续传

调用组件代码:

<!--组件调用示例-->
<template>
  <div>
    <div style="    margin-left: 20px;margin-top: 20px; ">
      <el-button @click="dialogVisible=true"  >视频播放</el-button>
    </div>
    <!--视频播放弹框-->
    <el-dialog   :visible.sync="dialogVisible" @close="closeVideo" title="视频播放"   width="50%"  top="4vh" :lock-scroll="false" :append-to-body="true"
                 :close-on-click-modal="false"  :show-close="true">
      <!--视频方式一  推荐-->
      <ckplayer-comp ref="videoComp" :poster="poster" :videoUrls="videoUrls" :autoPlay="autoPlay"></ckplayer-comp>
    </el-dialog>
  </div>
</template>

<script>
  import CkplayerComp from "../../components/videocompent/ckplayerComp";

  export default {
    name: 'home',
    components: {CkplayerComp},
    data() {
      return {  
        dialogVisible: false,
        compStyle:'width: 482px',
        size:'small',
        img: '',
        width: '50%',//视频弹框的宽度
        autoPlay: true,//视频打开是否自动播放
        poster: '',//视频封面图片
        videoUrls: [
          ['http://localhost:9999/sky-rxy-web/common/player', 'video/mp4', '进度条播放', 1],
          ['http://localhost:9999/sky-rxy-web/common/getVideo', 'video/mp4', '普通播放', 0]
        ] ,//视频地址
        sources:[{
          src: 'http://localhost:9999/sky-rxy-web/common/getVideo',  // 路径
          type: 'video/mp4'  // 类型
        }, {
          src: './test.webm',
          type: 'video/webm'
        }]
      }
    },
    computed: {},
    created() {

    },
    methods: {
      closeVideo() {
        //父组件调用子组件的方法
        this.$refs.videoComp.pauseVideo()
      }
    }
  }
</script>

 ckplayerComp.vue:

<!--ckplayer 视频播放-->
<template>
  <div id="video"></div>
</template>

<script>
  export default {
    name: 'ckplayerComp',
    props: ['videoUrls','autoPlay','poster'],
    data () {
      return {
        player: ''
      }
    },
    watch: {
      videoUrls: {
        handler(newVideoUrls, VideoUrls) {
          this.initVideo(newVideoUrls,this.autoPlay);
        },
        immediate: true
      }
    },
    mounted: function(){
      this.initVideo(this.videoUrls,this.autoPlay);
    },
    methods:{
      pauseVideo() {
        //暂停
        this.player.videoPause();
        // videoPause  playOrPause
      },
      initVideo(videoUrls,autoPlay) {
        // 挂载完成后进行
        var videoObject = {
          container: '#video', //容器的ID或className
          variable: 'player', //播放函数名称
          autoplay:autoPlay,//自动播放
          loaded: 'loadedHandler', //当播放器加载后执行的函数
          loop: false, //播放结束是否循环播放
          cktrack: '', //字幕文件
          poster: '', //封面图片
          preview: { //预览图片
            file: ['', ''],
            scale: 2
          },
          config: '', //指定配置函数
          debug: true, //是否开启调试模式
          drag: 'start', //拖动的属性
          seek: 0, //默认跳转的时间
          // promptSpot: [ //提示点
          //   {
          //     words: '提示点文字01',
          //     time: 30
          //   },
          //   {
          //     words: '提示点文字02',
          //     time: 150
          //   }
          // ],
          video: videoUrls
        };
        // 定义一个对象
        var player = new ckplayer(videoObject);
        this.player = player;
      }
    }
  }
</script>

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Vue 项目使用 Rainbow.js 实现代码高亮展示的步骤如下: 1. 安装 Rainbow.js:在命令行运行 npm install rainbow-js --save 2. 在 main.js 引入 Rainbow.js:import Rainbow from 'rainbow-js' 3. 在需要高亮代码的组件,通过 Rainbow.color() 方法来高亮代码。如: ``` <template> <pre> <code class="javascript" ref="code">{{ code }}</code> </pre> </template> <script> export default { data() { return { code: `console.log('Hello, Rainbow.js!')` } }, mounted() { Rainbow.color(this.$refs.code, 'javascript') } } </script> ``` 在上面的代码, 这个组件包含一个 <code> 标签,将其绑定到 ref ,并将其作为参数传递给 Rainbow.color() 方法,该方法的第二个参数是语言类型,在这里是 JavaScript。 ### 回答2: 在Vue项目使用Rainbow.js可以实现代码高亮展示。首先,我们需要在项目安装Rainbow.js。可以通过npm或yarn安装Rainbow.js依赖,并在需要使用代码高亮的组件引入Rainbow.js的脚本文件。 在Vue组件,我们可以通过以下步骤来使用Rainbow.js进行代码高亮展示: 1. 在Vue组件的`mounted`生命周期钩子函数,获取需要高亮展示的代码块的DOM节点。 2. 使用Rainbow.js提供的`highlight`函数,传入代码节点作为参数,可以将其内容进行高亮处理。 3. 通过自定义样式文件或者直接使用Rainbow.js提供的默认样式,对高亮后的代码样式进行美化。 4. 将高亮后的代码显示在页面上。 以下是一个示例代码,演示了如何在Vue项目使用Rainbow.js实现代码高亮展示: ```vue <template> <div> <pre> <code ref="code">{{ code }}</code> </pre> </div> </template> <script> import Rainbow from 'rainbow-js'; export default { data() { return { code: ` function greet(name) { console.log('Hello, ' + name + '!'); } greet('Vue'); `, }; }, mounted() { Rainbow.color(this.$refs.code); }, }; </script> <style> /* 可以自定义样式或使用Rainbow.js提供的默认样式 */ </style> ``` 在上面的示例,我们首先在`mounted`钩子函数获取了`<code>`标签对应的DOM节点,然后使用`Rainbow.color`函数对其内容进行高亮处理。最后,我们可以根据需要设置自定义样式或直接使用Rainbow.js提供的默认样式,用于展示高亮后的代码。 这样,我们就成功地在Vue项目使用Rainbow.js实现了代码高亮展示。 ### 回答3: 在Vue项目使用Rainbow.js实现代码高亮展示可以按照以下步骤进行操作。 首先,我们需要在Vue项目引入Rainbow.js。可以选择通过CDN引入,也可以通过npm安装Rainbow.js包并引入。这里我们以npm安装为例。 1. 在命令行使用以下命令安装Rainbow.js: ``` npm install rainbow-code ``` 2. 在Vue组件的script标签引入Rainbow.js: ```javascript import Rainbow from 'rainbow-code'; ``` 3. 在Vue组件的mounted生命周期钩子,初始化Rainbow.js并进行代码高亮设置: ```javascript mounted() { Rainbow.color(); } ``` 4. 在Vue模板使用<pre>标签包裹需要高亮展示的代码,并添加class属性为"rainbow": ```html <pre class="rainbow"> <code> <!-- 在这里插入需要展示的代码 --> </code> </pre> ``` 5. 在Vue组件的styles引入Rainbow的css样式文件: ```css @import 'rainbow-code/themes/github.css'; ``` 6. 在Vue项目的构建过程,确保CSS样式文件可以正确地被加载和解析。 通过以上步骤的操作,我们就可以在Vue项目使用Rainbow.js实现代码高亮展示了。可以根据需要,在Rainbow.color()传入具体的语言配置,使得代码高亮的效果更加准确和丰富。同时,我们也可以根据自己的需求,自定义Rainbow的样式文件,使得代码高亮展示更符合项目的整体风格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值