I need to update my table VIEW
when the user watches 90% of the video in Vímeo, but I can not use this logic with Laravel
.
I have this following code in PHP
normal:
<div class="meu_iframe">
<iframe src="https://player.vimeo.com/video/41578877"width="640" height="360" frameborder="0" allowfullscreen></iframe>
</div>
<!-- Inclusão jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><scriptsrc="https://player.vimeo.com/api/player.js"></script>
<script type="text/javascript">
$(function(){
//inclusão do plugin
if($('.meu_iframe').length){
//aqui faz a captura do iframe
var iframe = document.querySelector('iframe');
//aqui inicia o plugin do vimeo
var player = new Vimeo.Player(iframe);
//aqui faz a chamada do evento on e solicita o 'play'(indica que o vídeo foi startado)
//existe outros parametros como pause, ended, timeupdate...
player.on('play', function(tempo) {
//aqui captura o tempo total do vídeo
var tempoTotal = tempo.duration;
//aqui captura o percentual em execução do vídeo
var percentAssistido = tempo.percent;
//aqui captura os segundos em execução do vídeo
var segundosAssistido = tempo.seconds;
console.log(tempoTotal);
//essa funcao conta o tempo do vídeo e depois envia um post pro arquivo php
setTimeout(function () {
$.post('ajax.php', {tempo_video: tempoTotal}, function (data) {
if(data.atualizado){
alert("Tabela atualizada no banco");
}
}, 'json');
}, (Math.trunc(tempoTotal) * 1000));
});
}
});
</script>
Then inside the file ajax.php
I can make my UPDATE
. But I can not play this for Laravel
...
I tried this but it did not work.
View
<script type="text/javascript">
$(function(){
//inclusão do plugin
if($('.meu_iframe').length){
//aqui faz a captura do iframe
var iframe = document.querySelector('iframe');
//aqui inicia o plugin do vimeo
var player = new Vimeo.Player(iframe);
//aqui faz a chamada do evento on e solicita o 'play'(indica que o vídeo foi startado)
//existe outros parametros como pause, ended, timeupdate...
player.on('play', function(tempo) {
//aqui captura o tempo total do vídeo
var tempoTotal = tempo.duration;
//aqui captura o percentual em execução do vídeo
var percentAssistido = tempo.percent;
//aqui captura os segundos em execução do vídeo
var segundosAssistido = tempo.seconds;
console.log(tempoTotal);
//essa funcao conta o tempo do vídeo e depois envia um post pro arquivo php
setTimeout(function () {
$.post('{{route('ajaxview')}}', {tempo_video: tempoTotal}, function (data) {
if(data.atualizado){
alert("Tabela atualizada no banco");
}
}, 'json');
}, (Math.trunc(tempoTotal) * 1000));
});
}
});
</script>
Route
$this->post('ajax', 'SchoolController@ajaxView')->name('ajaxview');
Control
public function ajaxview(Request $request)
{
return view('school.salavirtual.ajaxview');
}