私は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>
上記は、ビデオが正しい時間に停止および開始するという点で機能し、コンソールからセッションデータをクエリすると機能します。ただし、ヘルパーからセッションデータを読み取った瞬間、すべてが地獄に落ちます。クリックしても何も起こらないものもあれば、ビデオを再起動するものもあれば、オーディオを再生するだけのものもあります。特にワイルドなのは、次のようにセッションをログに記録することです。
Template.video.helpers
isPlaying: ->
console.log Session.get('videoPlaying')
true
同じ問題が発生します。
解決策:保存を使用してビデオを一定の領域に配置しようとしましたが(skeetmtpに感謝)、一定の領域を使用することが、ビデオでポスターを使い続けることができるため、最良の解決策であることがわかりました。