Arkadaşlar selam, ilk kez böyle bir çalışma yapıyorum biraz destek alarak bir şeyler hazırladım ama doğru mu kurguladım tam anlayamadım, sanki çok fazla istek atıyor gibi geldi jquery ama siz ne önerirsiniz fikirlerinizi almak isterim.
function initTrackVideoProgress() {
var video = $('#video')[0];
var lastUpdateTime = 0;
var updateInterval = 10;
$(video).on('timeupdate', function() {
var currentTime = this.currentTime;
var duration = this.duration;
if (currentTime - lastUpdateTime > updateInterval) {
onTrackedVideoFrame(currentTime, duration);
lastUpdateTime = currentTime;
}
});
function onTrackedVideoFrame(currentTime, duration) {
var progress = (currentTime >= duration) ? 100 : (currentTime / duration) * 100;
// ajax isteği buraya!
}
}
ProgressController:
public function update(Request $request)
{
$lesson_uuid = $request->input('lesson_uuid');
$progress = $request->input('progress');
$user_id = auth()->id();
$lesson = Lesson::where('uuid', $lesson_uuid)->first();
if ($lesson) {
$userLesson = UserLesson::where('lesson_id', $lesson->id)->where('user_id', $user_id)->first();
if (!$userLesson) {
$userLesson = new UserLesson();
$userLesson->lesson_id = $lesson->id;
$userLesson->user_id = $user_id;
}
$userLesson->progress = $progress;
$userLesson->save();
return response()->json(['success' => true]);
}
return response()->json(['success' => false, 'message' => 'Lesson not found']);
}