【问题标题】:How to update video playing current time using ajax in laravel如何在laravel中使用ajax更新视频播放当前时间
【发布时间】:2020-11-07 01:29:55
【问题描述】:
<script> 
  var vid = document.getElementById("player"); 
  $(function() {
    var timeout;
    $("#player").on("playing pause", function(e) {
      // Save reference
      var v = this

      // Clear previous timeout, if any
      clearTimeout(timeout)

      // Call immediately if paused or when started
      performaction(v.currentTime, v.duration)
      
      // Set up interval to fire every 5 seconds
      if (e.type === "playing") {
        timeout = setInterval(function() {
          performaction(v.currentTime, v.duration)
        }, 5000)
      }
    })
  
    function performaction(currentTime, duration) {
      console.log(currentTime);
      console.log(' ajax action goes here');
      var data = { pause_time : currentTime };
      $.ajax({
        type: "POST",
        url: '/instructor/promo_video/84',
        data: data,
        success: function() {
          console.log("Value added");
        }
      })
    }
  })
</script>

在我的数据库中,我有一个视频表,其中的列名为pause_time。 现在,如果我将此 js 代码用于视频当前播放时间,那么我将在控制台中获得 5 秒间隔后的时间。 我想在 laravel 中使用 ajax 将这个时间发送到数据库。以及如何在控制器中获取currentTime 值。

提前致谢!!

【问题讨论】:

    标签: mysql ajax laravel


    【解决方案1】:

    如果你创建了一个视频表,那么你应该做一个视频模型:

    php artisan make:model Video
    

    当你在前端使用 POST 方法时,你也需要传递一个 CSRF 令牌。

    const data = {
      _token: YOUR_TOKEN,
      pause_time : currentTime,
    };
    

    要从数据库中获取数据,你应该使用 ORM,所以:

    $video = Video::where(SOME_CONDITIONS, value)->first();
    $currentTime = $video->pause_time;
    

    要从前端获取数据,你应该使用 $request:

    public function yourController(Request $request)
    {
        $currentTime = $request->pause_time;
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    相关资源
    最近更新 更多