coffeescript - meteor session 不适用于 html5 视频

标签 coffeescript html5-video meteor

我正在尝试使用 Meteor 来操作一组自定义 html5 视频控件。我的模板代码完全由以下内容组成:

Template.video.created = ->
  Session.set 'videoPlaying', false

Template.video.events
  'click .video-button-play': ->
    video = $('video')[0]
    if video.paused then video.play() else video.pause()
    Session.set 'videoPlaying', not video.paused

Template.video.helpers
  isPlaying: ->
    true

相关html如下:

<div class="video-button video-button-play">
  {{#if isPlaying}}
    <i class="icon-pause"></i>
  {{else}}
    <i class="icon-play"></i>
  {{/if}}
</div>

上面的工作原理是视频在正确的时间停止和开始,并且如果我从控制台查询 session 数据,它就可以工作。然而,当我从助手那里读取 session 数据时,一切都陷入困境 - 有些点击没有任何结果,有些重新启动视频,有些只是播放音频。特别疯狂的是,甚至像这样记录 session :

Template.video.helpers
  isPlaying: ->
    console.log Session.get('videoPlaying')
    true

导致同样的问题。

解决方案:我尝试使用保留并将视频放置在恒定区域中(感谢 skeetmtp),发现使用恒定区域是最好的解决方案,因为它允许我继续使用海报视频。

最佳答案

每当 videoPlaying 发生变化时,Meteor 就会重建整个“视频”模板,我猜您的自定义 html5 视频就在这个模板内。 您应该尝试其中之一(如果可能)

如果没有有关您的 html 代码(特别是自定义视频控件)的更多信息,我无法为您提供更多帮助。

关于coffeescript - meteor session 不适用于 html5 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624853/

相关文章:

javascript - 寻找一个 javascript 到 coffeescript 的在线转换器

css - 静态 css 不显示在 express jade 中

javascript - CoffeeScript 替换

javascript - 如何让 Meteor Helper 不响应?

Meteor 使用冒号更改包名称以适应 Windows

javascript - 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript

ios5 - Airplay 镜像 + 外部 UIScreen = 全屏 UIWebView 视频播放?

android - 在全屏 webview nokia x 中输入视频时出现 NullPointerException

download - 在 asp.net 中限制从我的网站视频的 IDM 下载

javascript - 在可以依赖于其他地方的 meteor 包中创建变量的正确方法是什么?