2

私は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に感謝)、一定の領域を使用することが、ビデオでポスターを使い続けることができるため、最良の解決策であることがわかりました。

4

1 に答える 1

2

Meteorは、videoPlayingが変更されるたびに、「ビデオ」テンプレート全体を再構築しています。カスタムhtml5ビデオがこのテンプレート内にあると思います。どちらかを試してください(可能な場合)

あなたのhtmlコード(特にカスタムビデオコントロール)についてのより多くの情報がなければ、私はあなたをこれ以上助けることはできません。

于 2013-03-25T23:21:28.647 に答える