Bonjour.
Voici mon code PHP du ajax/setVideoBroken.php fichier qui renvoie un Json:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 if(isset($_POST["src"])) { $query = $con->prepare("UPDATE videos SET broken = 1 WHERE videoLink=:src"); $query->bindValue(":src", $_POST["src"]); $query->execute(); $response = ['success' => false]; $videoQuery = $con->prepare("SELECT * FROM videos WHERE videoLink=:src"); $videoQuery->bindValue(":src", $_POST["src"]); $videoQuery->execute(); while($row = $videoQuery->fetch(PDO::FETCH_ASSOC)) { $response['success'] = true; $response = [ 'success' => true, 'video_link' => $row["videoLink"], 'thumbnail' => $row["thumbnail"], 'video_type' => 'video/' . $row["video_extension"], ]; } header('Content-Type: application/json; charset=utf-8'); echo json_encode($response); exit; } else { echo "No src passed to page"; }
Ce Json retourné en PHP ci-dessus, est récupéré en Ajax (JavaScript) pour afficher le lien vidéo (video_link) dans la balise source qui elle-même est incluse dans la balise video:
Je tiens à préciser que response.video_link peut contenir des URLs vidéo simples (https://website.com/video.mp4) ou oEmbed de code HTML comme celui de Youtube (<iframe src="https://www.youtube.com/embed/4YCLRpKY1cs?feature=oembed"></iframe>)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 function loadVideo(src, className) { var video = $('<video id="player" playsinline controls><source /></video>'); video.on("load", function() { $("." + className + " a").append(video); clearTimeout(timer); timer = setTimeout(function() { $(".imageResults").masonry(); }, 500); }); video.on("error", function() { $("." + className).remove(); $.post("ajax/setVideoBroken.php", {src: src}); }); $.post("ajax/setVideoBroken.php", {src: src}, function(response) { if(response.success) { $('video', $video).attr('data-poster', response.thumbnail); $('source', $video) .attr('src', response.video_link) .attr('type', response.video_type); } }); }
Comment donc vérifier dans le code JavaScript:
- Si response.video_link (la réponse video_link du Json retourné par le Code PHP) commence par < qui représente le signe d'ouverture de la balise HTML ???
- Et si oui (video_link commence par le signe <, c'est que video_link équivaut à un code HTML de type `oEmbed` comme celui de Youtube), donner directement la valeur de ce code HTML à la variable var video.
- Si non, on passe à la variable var video le code <video id="player" playsinline controls><source /></video> de sorte à ajouter à la balise source, le lien de la vidéo que contient la réponse JSON: video_link.
J'ai vraiment besoin de votre aide.
Partager