summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/mx/primitives/mx.video.js4
-rw-r--r--public/assets/javascripts/mx/primitives/mx.vimeo.js32
-rw-r--r--public/assets/javascripts/mx/primitives/mx.youtube.js7
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/video.js4
-rw-r--r--public/assets/javascripts/ui/editor/MediaEditor.js2
5 files changed, 39 insertions, 10 deletions
diff --git a/public/assets/javascripts/mx/primitives/mx.video.js b/public/assets/javascripts/mx/primitives/mx.video.js
index b28204d..cdb92c8 100644
--- a/public/assets/javascripts/mx/primitives/mx.video.js
+++ b/public/assets/javascripts/mx/primitives/mx.video.js
@@ -83,6 +83,10 @@ MX.Video = MX.Object3D.extend({
this.muted = false
},
+ setLoop: function(state){
+ this.media.loop = state
+ },
+
duration: function(){
return this.player.duration
},
diff --git a/public/assets/javascripts/mx/primitives/mx.vimeo.js b/public/assets/javascripts/mx/primitives/mx.vimeo.js
index 7a5327e..7bc0a26 100644
--- a/public/assets/javascripts/mx/primitives/mx.vimeo.js
+++ b/public/assets/javascripts/mx/primitives/mx.vimeo.js
@@ -21,15 +21,17 @@ MX.Vimeo = MX.Object3D.extend({
this.el.classList.add("video")
this.paused = !! this.media.autoplay
this.muted = app.muted || !! this.media.mute
+ this.started = false
this.load()
},
load: function (ops) {
var uid = 'player-' + Uid ()
+ var loop = this.media.loop ? 'loop=1' : ""
var preload = document.createElement("iframe")
preload.id = uid
- preload.setAttribute("src", "//player.vimeo.com/video/" + this.media.token + "?api=1&badge=0&controls=0branding=0&byline=0&player_id=" + uid)
+ preload.setAttribute("src", "//player.vimeo.com/video/" + this.media.token + "?api=1&badge=0&controls=0branding=0&byline=0&portrait=0&title=0&" + loop + "&player_id=" + uid)
preload.style.backgroundImage = "url(" + this.media.thumbnail + ")"
preload.style.width = this.media.width + "px"
preload.style.height = this.media.height + "px"
@@ -44,6 +46,7 @@ MX.Vimeo = MX.Object3D.extend({
ready: function(){
console.log("vimeo ready")
+ this.started = true
// wait until ready before binding events. other events: play, pause
this.player.addEvent('play', this.onPlay.bind(this))
@@ -65,6 +68,9 @@ MX.Vimeo = MX.Object3D.extend({
if (this.media.autoplay) {
this.play()
}
+ else {
+ this.pause()
+ }
},
error: function(err){
@@ -90,6 +96,11 @@ MX.Vimeo = MX.Object3D.extend({
return
}
+ if (! this.started || n === 0) {
+ return
+ }
+ console.log("fukballz", n)
+
if (n < 1) {
n = n * this.duration()
}
@@ -97,9 +108,10 @@ MX.Vimeo = MX.Object3D.extend({
if (this.paused) {
this.paused = false
this.play()
+ this.pause()
setTimeout(function(){
this.pause()
- }.bind(this), 1000)
+ }.bind(this), 100)
}
},
@@ -117,6 +129,11 @@ MX.Vimeo = MX.Object3D.extend({
this.muted = false
},
+ setLoop: function(state){
+ this.media.loop = state
+ this.player.api('setLoop', state)
+ },
+
onPlay: function(){
if (this.paused) {
this.pause()
@@ -130,11 +147,12 @@ MX.Vimeo = MX.Object3D.extend({
},
finished: function(){
- if (this.media.loop) {
- this.seek(0)
- this.play()
- }
- else if (this.bound) {
+// if (this.media.loop) {
+// this.seek(0)
+// this.play()
+// }
+// else if (this.bound) {
+ if (! this.media.loop && this.bound) {
$(".playButton").removeClass('playing')
}
}
diff --git a/public/assets/javascripts/mx/primitives/mx.youtube.js b/public/assets/javascripts/mx/primitives/mx.youtube.js
index e9a4578..5514359 100644
--- a/public/assets/javascripts/mx/primitives/mx.youtube.js
+++ b/public/assets/javascripts/mx/primitives/mx.youtube.js
@@ -146,7 +146,6 @@ MX.Youtube = MX.Object3D.extend({
},
duration: function(){
- console.log(this, this.player)
return this.player.getDuration()
},
@@ -161,7 +160,11 @@ MX.Youtube = MX.Object3D.extend({
this.muted = false
},
- finished: function(){
+ setLoop: function(state){
+ this.media.loop = state
+ },
+
+ finished: function(){
console.log("youtube finished")
if (this.media.loop) {
this.seek(0)
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/video.js b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
index d3e2e76..79cfb1c 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/video.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
@@ -73,6 +73,10 @@ Scenery.types.video = Scenery.types.base.extend(function(base){
this.mx.seek(n)
},
+ setLoop: function(shouldLoop){
+ this.mx.setLoop(shouldLoop)
+ },
+
mute: function(muted){
if (muted) {
this.mx.mute()
diff --git a/public/assets/javascripts/ui/editor/MediaEditor.js b/public/assets/javascripts/ui/editor/MediaEditor.js
index a52bdd0..f4e8071 100644
--- a/public/assets/javascripts/ui/editor/MediaEditor.js
+++ b/public/assets/javascripts/ui/editor/MediaEditor.js
@@ -105,7 +105,7 @@ console.log(scenery)
},
setLoop: function(){
var checked = this.$loop.prop('checked')
- this.scenery.media.loop = checked
+ this.scenery.setLoop(checked)
},
setMute: function(){
var checked = this.$mute.prop('checked')