Skip to content

Commit b019aa7

Browse files
author
Philipp
committed
Added playsWhen prop
Maybe usefull for slow internet connection!
1 parent 973b9cc commit b019aa7

File tree

7 files changed

+124
-105
lines changed

7 files changed

+124
-105
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ https://www.w3schools.com/tags/att_video_preload.asp
123123

124124
So the video fits perfectly in the container
125125

126+
- `playsWhen` (default: `canplay`)
127+
128+
This is important, if you know that you might have users with bad internet speed, you should definetly use `canplaythrough`. Learn more in [video events](https://www.w3schools.com/tags/ref_av_dom.asp).
129+
126130
## Events
127131

128132
- `ready`: Video is loaded

demo/public/js/app.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.common.js

Lines changed: 56 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1489,17 +1489,6 @@ module.exports = function (bitmap, value) {
14891489
};
14901490

14911491

1492-
/***/ }),
1493-
1494-
/***/ "6094":
1495-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
1496-
1497-
"use strict";
1498-
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VideoPlayer_vue_vue_type_style_index_0_id_fc38aede_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d2b2");
1499-
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VideoPlayer_vue_vue_type_style_index_0_id_fc38aede_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VideoPlayer_vue_vue_type_style_index_0_id_fc38aede_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
1500-
/* unused harmony reexport * */
1501-
/* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VideoPlayer_vue_vue_type_style_index_0_id_fc38aede_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
1502-
15031492
/***/ }),
15041493

15051494
/***/ "60ae":
@@ -2075,6 +2064,32 @@ module.exports = function (S, index, unicode) {
20752064
};
20762065

20772066

2067+
/***/ }),
2068+
2069+
/***/ "8be0":
2070+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
2071+
2072+
"use strict";
2073+
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VideoPlayer_vue_vue_type_style_index_0_id_151ed068_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8c5e");
2074+
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VideoPlayer_vue_vue_type_style_index_0_id_151ed068_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VideoPlayer_vue_vue_type_style_index_0_id_151ed068_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
2075+
/* unused harmony reexport * */
2076+
/* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_VideoPlayer_vue_vue_type_style_index_0_id_151ed068_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
2077+
2078+
/***/ }),
2079+
2080+
/***/ "8c5e":
2081+
/***/ (function(module, exports, __webpack_require__) {
2082+
2083+
// style-loader: Adds some css to the DOM by adding a <style> tag
2084+
2085+
// load the styles
2086+
var content = __webpack_require__("b7270");
2087+
if(typeof content === 'string') content = [[module.i, content, '']];
2088+
if(content.locals) module.exports = content.locals;
2089+
// add the styles to the DOM
2090+
var add = __webpack_require__("499e").default
2091+
var update = add("04d22e19", content, true, {"sourceMap":false,"shadowMode":false});
2092+
20782093
/***/ }),
20792094

20802095
/***/ "90e3":
@@ -2937,6 +2952,21 @@ module.exports = {
29372952
};
29382953

29392954

2955+
/***/ }),
2956+
2957+
/***/ "b7270":
2958+
/***/ (function(module, exports, __webpack_require__) {
2959+
2960+
exports = module.exports = __webpack_require__("2350")(false);
2961+
// imports
2962+
2963+
2964+
// module
2965+
exports.push([module.i, ".video-wrapper[data-v-151ed068]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;position:absolute;overflow:hidden;z-index:0}.fade[data-v-151ed068]{backface-visibility:hidden}.fade-enter-active[data-v-151ed068],.fade-leave-active[data-v-151ed068]{transition:opacity 1s}.fade-enter[data-v-151ed068],.fade-leave-to[data-v-151ed068]{opacity:0}video[data-v-151ed068]{visibility:visible;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:100%;width:100%}", ""]);
2966+
2967+
// exports
2968+
2969+
29402970
/***/ }),
29412971

29422972
/***/ "bea1":
@@ -3182,21 +3212,6 @@ exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
31823212
} : nativePropertyIsEnumerable;
31833213

31843214

3185-
/***/ }),
3186-
3187-
/***/ "d2b2":
3188-
/***/ (function(module, exports, __webpack_require__) {
3189-
3190-
// style-loader: Adds some css to the DOM by adding a <style> tag
3191-
3192-
// load the styles
3193-
var content = __webpack_require__("f70c");
3194-
if(typeof content === 'string') content = [[module.i, content, '']];
3195-
if(content.locals) module.exports = content.locals;
3196-
// add the styles to the DOM
3197-
var add = __webpack_require__("499e").default
3198-
var update = add("62e8aa78", content, true, {"sourceMap":false,"shadowMode":false});
3199-
32003215
/***/ }),
32013216

32023217
/***/ "d44e":
@@ -3516,21 +3531,6 @@ module.exports = Array.isArray || function isArray(arg) {
35163531
})(document);
35173532

35183533

3519-
/***/ }),
3520-
3521-
/***/ "f70c":
3522-
/***/ (function(module, exports, __webpack_require__) {
3523-
3524-
exports = module.exports = __webpack_require__("2350")(false);
3525-
// imports
3526-
3527-
3528-
// module
3529-
exports.push([module.i, ".video-wrapper[data-v-fc38aede]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;position:absolute;overflow:hidden;z-index:0}.fade[data-v-fc38aede]{backface-visibility:hidden}.fade-enter-active[data-v-fc38aede],.fade-leave-active[data-v-fc38aede]{transition:opacity 1s}.fade-enter[data-v-fc38aede],.fade-leave-to[data-v-fc38aede]{opacity:0}video[data-v-fc38aede]{visibility:visible;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:100%;width:100%}", ""]);
3530-
3531-
// exports
3532-
3533-
35343534
/***/ }),
35353535

35363536
/***/ "f772":
@@ -3686,6 +3686,11 @@ function _defineProperty(obj, key, value) {
36863686
objectFit: {
36873687
type: String,
36883688
"default": 'cover'
3689+
},
3690+
playsWhen: {
3691+
type: String,
3692+
"default": 'canplay',
3693+
note: 'Google HTML Video Events'
36893694
}
36903695
});
36913696
// CONCATENATED MODULE: ./src/core/props.js
@@ -3775,12 +3780,12 @@ var exists = function exists(obj, key) {
37753780
"default": ''
37763781
}
37773782
}, playerProps));
3778-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"2dd602f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/VideoPlayer.vue?vue&type=template&id=fc38aede&scoped=true&
3779-
var VideoPlayervue_type_template_id_fc38aede_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"fade"}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.showVideo),expression:"showVideo"}],staticClass:"video-wrapper"},[_c('video',{ref:"video",style:(_vm.styleObject),attrs:{"autoplay":"","playsinline":"","loop":_vm.loop,"preload":_vm.preload},domProps:{"muted":_vm.muted}},[_c('source',{attrs:{"src":_vm.src,"type":_vm.getMediaType(_vm.src)}})])])])}
3780-
var VideoPlayervue_type_template_id_fc38aede_scoped_true_staticRenderFns = []
3783+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"2dd602f9-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/VideoPlayer.vue?vue&type=template&id=151ed068&scoped=true&
3784+
var VideoPlayervue_type_template_id_151ed068_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"fade"}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.showVideo),expression:"showVideo"}],staticClass:"video-wrapper"},[_c('video',{ref:"video",style:(_vm.styleObject),attrs:{"autoplay":"","playsinline":"","loop":_vm.loop,"preload":_vm.preload},domProps:{"muted":_vm.muted}},[_c('source',{attrs:{"src":_vm.src,"type":_vm.getMediaType(_vm.src)}})])])])}
3785+
var VideoPlayervue_type_template_id_151ed068_scoped_true_staticRenderFns = []
37813786

37823787

3783-
// CONCATENATED MODULE: ./src/components/VideoPlayer.vue?vue&type=template&id=fc38aede&scoped=true&
3788+
// CONCATENATED MODULE: ./src/components/VideoPlayer.vue?vue&type=template&id=151ed068&scoped=true&
37843789

37853790
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js
37863791
var es_regexp_exec = __webpack_require__("ac1f");
@@ -3891,16 +3896,16 @@ var web_timers = __webpack_require__("4795");
38913896
},
38923897
mounted: function mounted() {
38933898
if (this.videoCanPlay()) {
3894-
this.$refs.video.oncanplay = this.videoReady;
3899+
this.$refs.video["on".concat(this.playsWhen)] = this.videoReady;
38953900
this.$refs.video.onerror = this.videoError;
38963901
this.$refs.video.onended = this.videoEnded;
38973902
}
38983903
}
38993904
});
39003905
// CONCATENATED MODULE: ./src/components/VideoPlayer.vue?vue&type=script&lang=js&
39013906
/* harmony default export */ var components_VideoPlayervue_type_script_lang_js_ = (VideoPlayervue_type_script_lang_js_);
3902-
// EXTERNAL MODULE: ./src/components/VideoPlayer.vue?vue&type=style&index=0&id=fc38aede&scoped=true&lang=css&
3903-
var VideoPlayervue_type_style_index_0_id_fc38aede_scoped_true_lang_css_ = __webpack_require__("6094");
3907+
// EXTERNAL MODULE: ./src/components/VideoPlayer.vue?vue&type=style&index=0&id=151ed068&scoped=true&lang=css&
3908+
var VideoPlayervue_type_style_index_0_id_151ed068_scoped_true_lang_css_ = __webpack_require__("8be0");
39043909

39053910
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
39063911
/* globals __VUE_SSR_CONTEXT__ */
@@ -4008,11 +4013,11 @@ function normalizeComponent (
40084013

40094014
var component = normalizeComponent(
40104015
components_VideoPlayervue_type_script_lang_js_,
4011-
VideoPlayervue_type_template_id_fc38aede_scoped_true_render,
4012-
VideoPlayervue_type_template_id_fc38aede_scoped_true_staticRenderFns,
4016+
VideoPlayervue_type_template_id_151ed068_scoped_true_render,
4017+
VideoPlayervue_type_template_id_151ed068_scoped_true_staticRenderFns,
40134018
false,
40144019
null,
4015-
"fc38aede",
4020+
"151ed068",
40164021
null
40174022

40184023
)

0 commit comments

Comments
 (0)