在Vuejs组件中使用videojs-vr

时间:2017-10-12 20:10:19

标签: javascript npm vue.js video.js

我试图在Vuejs组件中使用我通过npm安装的videojs-vr。并得到一个错误:

TypeError: videojs is not a function
at VueComponent.mounted (VR.vue?d2da:23)
at callHook (vue.esm.js?65d7:2701)
at Object.insert (vue.esm.js?65d7:3588)
at invokeInsertHook (vue.esm.js?65d7:5541)
at VueComponent.patch [as __patch__] (vue.esm.js?65d7:5744)
at VueComponent.Vue._update (vue.esm.js?65d7:2460)

我尝试过导入要求库。我使用npm库的方式一定有问题。请帮忙。

<template>
  <div class="videojs-vr" style="width: 100%; height:100%;">
    <video id="videojs-vr-player" class="video-js vjs-default-skin" controls>
      <source src="./static/videos/sample.mp4" type="video/mp4">
    </video>
  </div>
</template>
<script>
var videojs = require('videojs-vr');
// import videojs from 'videojs-vr';

export default {
  name: 'videojs-vr',
  mounted() {
    var player = videojs('videojs-vr-player');
    player.mediainfo = player.mediainfo || {};
    player.mediainfo.projection = '360';
    // AUTO is the default and looks at mediainfo
    player.vr({projection: 'AUTO', debug: true, forceCardboard: false});
  },   
};
</script>

1 个答案:

答案 0 :(得分:1)

您需要先要求video.js模块并将该引用设置为videojs变量。然后,您只需要videojs-vr模块而不将其设置为任何变量。

Here's the example from the documentation:

var videojs = require('video.js');

// The actual plugin function is exported by this module, but it is also
// attached to the `Player.prototype`; so, there is no need to assign it
// to a variable.
require('videojs-vr');

var player = videojs('my-video');

player.vr({projection: '360'});