Bonjour,

Voila je rencontre un petit problème avec mon code :
J'aimerais que quand je clique sur l'image (par exemple) tf1,

Le player prenne directement le lien du flux tf1 qui est :

http://46.101.231.222/live/bzlCM2oycy9GVU1KM0FMQ3ZjdDErdXI5U2xiNEZzdXUzbFBKVzZWVURBbldaZXdlaW1BV1RRaG9rWHE1UzFRM3RKSmhnVWhqRVBOb1UvRjZBWFhDdDBjUFFwZ1MwbW9NWE1ONDU0dGRjdG1ET29qd3hlOVVic0JwQTlwN2tDQ0lFdjloVCtuZjkrdDRjcmZuSWxnYitTcXgybGEzWGl6UC9nSlRaK0hna0c0PQ.m3u

Ce que je fais

<param name="flashvars" value="src=$src_tele8&amp;streamType=live&amp;tintColor=#B91F1F&amp;autoPlay=true&amp;controlBarAutoHide=true&amp;controlBarPosition=bottom&amp;scaleMode=none&amp;controlBarAutoHideTimeout=5&amp;poster=http://oklivetv.com/xplay/swf/loading.gif&amp;plugin_hls=http://oklivetv.com/xplay/swf/flashlsOSMF.swf&amp;hls_minbufferlength=1&amp;hls_maxbufferlength=10&amp;hls_lowbufferlength=3&amp;hls_startfromlevel=-1&amp;hls_seekfromlevel=-1&amp;hls_seekmode=ACCURATE&amp;javascriptCallbackFunction=onJSBridge&amp;hls_startfromlowestlevel=false&amp;hls_seekfromlowestlevel=false&amp;hls_live_flushurlcache=true&amp;hls_info=true&amp;verbose=true&amp;hls_debug=true&amp;hls_debug2=true&amp;hls_warn=true&amp;hls_error=true&amp;hls_fragmentloadmaxretry=10&amp;hls_manifestloadmaxretry=5&amp;hls_maxlevelcappingmode=upscale&amp;hls_capleveltostage=false"></object>

Voici ma case $src_tele de tf1 :

<?php

if(isset($_GET['television'])) {
$television = $_GET['television'];
switch($television){

case "tfun":
$src_tele = "
http://46.101.231.222/live/bzlCM2oycy9GVU1KM0FMQ3ZjdDErdXI5U2xiNEZzdXUzbFBKVzZWVURBbldaZXdlaW1BV1RRaG9rWHE1UzFRM3RKSmhnVWhqRVBOb1UvRjZBWFhDdDBjUFFwZ1MwbW9NWE1ONDU0dGRjdG1ET29qd3hlOVVic0JwQTlwN2tDQ0lFdjloVCtuZjkrdDRjcmZuSWxnYitTcXgybGEzWGl6UC9nSlRaK0hna0c0PQ.m3u
"; //type="video/mp4"
break;
}
}
else {
$src= "";
}
?>

Ce que je veux

Je veux que quand on clique sur l'image tf1, le player prenne automatiquement la valeur de $src_tele ....
Malheuresement, je bloque sur ce truc depuis une semaine !!!!!

Ce que j'obtiens

Je n'obtiens rien, aucune image à la télé.
Si j'enlève le $src_tele
et que je le remplace par le lien, ça fonctionne, je peut regarder la télé depuis mon site web (http://bb-info.fr)
[ La je travaille en locale pour la prochaine versions sans plus aucun problème, donc la tv n'est pas encore installé sur mon site)
Voici un screen :

Voilà, donc j'aimerais de l'aide svp, c'est (assez) urgent car il faut que je termine pour la mise en ligne sur le site.

En attendant une réponse de votre part,
Cordialement, DayTech. :D

30 réponses


keulu
Réponse acceptée

ben ca c'est du routing
alors effectivement si t'as de regles de routage, il va falloir les coder.

([a-z]+)-([a-z]+).html$ /index.php?page=$1&station=$2 [L]

ca veux dire sur si tu appel radio-nrj.html ca va etre mappé a /index.php?page=radio&station=nrj

donc en gardant la meme route, tu peux très bien appeler la page

tv-tf1.html ce qui reviendra a appeler /index.php?page=tv&station=tf1

et au lieu de faire un switch sur $_GET['television'] tu le fait sur $_GET['station']

d'ailleur, TF1 ne va pas passer dans ta route, car le $2 n'accepte par les numéros.

bfm, franceo, arte -> oui
tf1, france2, france3 -> non
change pour [a-z0-9]

Bonjour,

Eu ...

<param name="flashvars" value="src=$src_tele8 ...

Si mes yeux sont bons, tu affiches ici une variable $src_tele hors des balises php .
Essais peut être :

<param name="flashvars" value="src=<php echo  $src_tele8; ?> &amp .....
DayTech
Auteur

Salut, non ça ne fonctionne pas...

ah ba zut alors

DayTech
Auteur
<param name="flashvars" value="src=<?php echo $src_tele; ?>8

Le 8 c'est un rajout, il n'est pas dans la variable car certains flux sont au format m3u8
Je l'ai enlever, je le rajoute aux liens de base avec le format m3u8

DayTech
Auteur

J'ai besoin du 8 pour faire fonctionner tous les flux donc je le laisse à part.
Fonctionne toujours pas avec la déclaration

<?php $src_tele; ?>

<?php $src_tele; ?> ne va rien afficher. Sois tu mets un echo devant pour dire à php d'afficher le texte, sois tu utilises les short-tag : <?= $src_tele;?>

DayTech
Auteur

Ne fonctionne toujours pas...

<param name="flashvars" value="src=<?php echo $src_tele; ?>8&amp;streamType=live&amp;tintColor=#B91F1F&amp;autoPlay=true&amp;controlBarAutoHide=true&amp;controlBarPosition=bottom&amp;scaleMode=none&amp;controlBarAutoHideTimeout=5&amp;poster=http://oklivetv.com/xplay/swf/loading.gif&amp;plugin_hls=http://oklivetv.com/xplay/swf/flashlsOSMF.swf&amp;hls_minbufferlength=1&amp;hls_maxbufferlength=10&amp;hls_lowbufferlength=3&amp;hls_startfromlevel=-1&amp;hls_seekfromlevel=-1&amp;hls_seekmode=ACCURATE&amp;javascriptCallbackFunction=onJSBridge&amp;hls_startfromlowestlevel=false&amp;hls_seekfromlowestlevel=false&amp;hls_live_flushurlcache=true&amp;hls_info=true&amp;verbose=true&amp;hls_debug=true&amp;hls_debug2=true&amp;hls_warn=true&amp;hls_error=true&amp;hls_fragmentloadmaxretry=10&amp;hls_manifestloadmaxretry=5&amp;hls_maxlevelcappingmode=upscale&amp;hls_capleveltostage=false"></object>
<?php

if(isset($_GET['television'])) {
$television = $_GET['television'];
switch($television){

case "tfun":
$src_tele = "http://46.101.231.222/live/bzlCM2oycy9GVU1KM0FMQ3ZjdDErdXI5U2xiNEZzdXUzbFBKVzZWVURBbldaZXdlaW1BV1RRaG9rWHE1UzFRM3RKSmhnVWhqRVBOb1UvRjZBWFhDdDBjUFFwZ1MwbW9NWE1ONDU0dGRjdG1ET29qd3hlOVVic0JwQTlwN2tDQ0lFdjloVCtuZjkrdDRjcmZuSWxnYitTcXgybGEzWGl6UC9nSlRaK0hna0c0PQ.m3u"; //type="video/m3u"
break;
}
}
else {
$src= "";
}
?>

Est ce que la console t'affiche une erreur ?

DayTech
Auteur

Non, il ne m'affiche pas d'erreur.

DayTech
Auteur

Je mettrais un lien join.me ce soir, je le partagerais pour qu'on m'aide.

Fais nous un lien sur codeshare

DayTech
Auteur

Actuellement, je ne peut pas je suis au magasin.

DayTech
Auteur

UP, besoin d'aide svp

ben déja, ton lien est mort. avec TF1, l'url du flux change trop souvent pour pouvoir le mettre sur un site. Seul les flux de france TV ne changent quasiment jamais. pour les autres (chaines privées) il y a un hash dans l'url qui va changer souvent selon un alogorythme et une clé privé que seul les possesseurs du flux connaissent....

ensuite, on te met a dispo un fichier m3u, et toi tu veux absolument appeler un m3u8. pas bien je pense...

quand on te donne un fichier .txt, t'essaye pas de l'appeler en .doc

ensuite essaye de faire ca

<?php echo $src_tele; ?>
<param name="flashvars" value="src=<?php echo $src_tele; ?>8&amp;streamType=live&amp;tintColor=#B91F1F&amp;autoPlay=true&amp;controlBarAutoHide=true&amp;controlBarPosition=bottom&amp;scaleMode=none&amp;controlBarAutoHideTimeout=5&amp;poster=http://oklivetv.com/xplay/swf/loading.gif&amp;plugin_hls=http://oklivetv.com/xplay/swf/flashlsOSMF.swf&amp;hls_minbufferlength=1&amp;hls_maxbufferlength=10&amp;hls_lowbufferlength=3&amp;hls_startfromlevel=-1&amp;hls_seekfromlevel=-1&amp;hls_seekmode=ACCURATE&amp;javascriptCallbackFunction=onJSBridge&amp;hls_startfromlowestlevel=false&amp;hls_seekfromlowestlevel=false&amp;hls_live_flushurlcache=true&amp;hls_info=true&amp;verbose=true&amp;hls_debug=true&amp;hls_debug2=true&amp;hls_warn=true&amp;hls_error=true&amp;hls_fragmentloadmaxretry=10&amp;hls_manifestloadmaxretry=5&amp;hls_maxlevelcappingmode=upscale&amp;hls_capleveltostage=false"></object>

tu devrai voir l'url de ton flux au dessus de ton player

ah... et tu ouvres une balise < param > et tu ferme sur < /object >... un souci la aussi non ???

DayTech
Auteur

Salut !
Oui, c'est bon j'ai fermé.
La déclaration de la variable
<?php echo $src_tele; ?>

ne m'affiche qu'une seule chose et c'est une erreur :
Notice: Undefined variable: src_tele in C:\xamp2\htdocs\contenu\tv.php on line 44

Bonjour.
La définition de l'erreur est pourtant simple, il est dit que la variable src_tele n'est pas définie, donc si tu dois avoir le paramètre television en get pour quelle soit définie, fais une condition pour ne pas afficher le script si elle n'est pas définie, car dans ta condition tu as mis :

if(isset($_GET['television']) {
    $television = $_GET['television'];
    switch ($television) {
        case 'tfun':
            $src_tele = ... ;
        break;
    } 
} else {
        $src = "";
}

Soit deux noms de variables différentes.

DayTech
Auteur

Euh, je suis débutant en php j'ai vraiment du mal avec ce que tu m'as dis...

il dit que tu doit pas rentrer dans ton switch

case 'tfun':
$src_tele = ... ;

et dans ton else tu déclares $src = ""; et non pas $src_tele = "";

donc quand tu fait appel a $src_tele il te boule en te disant que cette variable est inconnu...

Dans ta condition tu lui dis que si le paramètre television passé en GET est bien présent, la fonction switch s'effectue en filtrant sa valeur et définit la variable src_tele, mais dans le cas contraire, tu définis une variable src avec du vide.
Ce qui fait deux noms de variables différents : src_tele et src.
Donc dans le cas ou le paramètre n'est pas passé, tu te retrouve a demander une variable qui n'est pas définie.
Il te faut donc soit corriger ce problème de différents nom de variable, soit lorsque tu demandes la variable src_tele faire une condition, par exemple :

<?php if(isset($src_tele)) { ?>
     <param name="flashvars" value="src=<?php echo $src_tele; ?>&amp;streamType=live&amp;tintColor=#B91F1F&amp;autoPlay=true&amp;controlBarAutoHide=true&amp;controlBarPosition=bottom&amp;scaleMode=none&amp;controlBarAutoHideTimeout=5&amp;poster=http://oklivetv.com/xplay/swf/loading.gif&amp;plugin_hls=http://oklivetv.com/xplay/swf/flashlsOSMF.swf&amp;hls_minbufferlength=1&amp;hls_maxbufferlength=10&amp;hls_lowbufferlength=3&amp;hls_startfromlevel=-1&amp;hls_seekfromlevel=-1&amp;hls_seekmode=ACCURATE&amp;javascriptCallbackFunction=onJSBridge&amp;hls_startfromlowestlevel=false&amp;hls_seekfromlowestlevel=false&amp;hls_live_flushurlcache=true&amp;hls_info=true&amp;verbose=true&amp;hls_debug=true&amp;hls_debug2=true&amp;hls_warn=true&amp;hls_error=true&amp;hls_fragmentloadmaxretry=10&amp;hls_manifestloadmaxretry=5&amp;hls_maxlevelcappingmode=upscale&amp;hls_capleveltostage=false"></param>
<?php } else { ?>
     Il faut sélectionner une chaîne !
<?php } ?>

Ce n'est qu'un exemple bien sûr.

DayTech
Auteur

Bonjour, je n'y arrive toujours pas...
Voilà mon code : http://collabedit.com/kss4w

Bonjour, je n'y arrive toujours pas...

À la vue de ton code ce n'est pas étonnant, étant donné que les liens pour les chaines, au lieu de passer le nom de la chaîne en paramètre GET, ils renvoies sur des pages HTML.
Au lieu d'avoir :

<li><a href="tv-tfun.html"><img src="../im-tv/tf1.png" alt="TF1"></a></li>

Tu devrais avoir quelque chose du genre :

<li><a href="?television=tfun"><img src="../im-tv/tf1.png" alt="TF1"></a></li>

Comment veux-tu que ton script PHP puisse détecter un paramètre GET si tu ne le lui envoi jamais ?

DayTech
Auteur

Salut !
J'ai essayé mais le player ne prend pas la vidéo. J'ai réussi à avoir un lien de flux valide.
Ca ne fonctionne toujours pas mais ça aurait pu. Merci pour ton aide, je galère depuis lundi sur ce truc, j'aimerais vraiment le terminer.

Je vous remercie de m'aider et d'avoir la patience de répondre à mes questions.
Si vous avez d'autres idées de comment faire, je suis prenneur !

En attendant plus d'aide,
Cordialement, DayTech.

alors attention, test avec ton flux BFM, parce que ton flux TF1 est mort...

et attention aussi

$src_tele = "
http://bfmlive2-i.akamaihd.net/hls/live/214427/bfmtv/04.m3u8
"

ET

$src_tele = "http://bfmlive2-i.akamaihd.net/hls/live/214427/bfmtv/04.m3u8";

c'est pas la meme chose...

DayTech
Auteur

Ok, j'ai test avec ce que tu m'as dis mais encore & toujours non fonctionnel.
Voilà mon nouveau code avec les réponses de Lartak & keulu
http://collabedit.com/kss4w

question con peut etre, mais c'est quoi l'extension de ton fichier ? parce que avant tu faisait appel à des fichiers html.

t'es vraiment sur de bien etre en php ?

commente ton switch case pour l'instant

et au moment de faire un echo $src_tele ecrit :

<?php
    $src_tele = "http://bfmlive2-i.akamaihd.net/hls/live/214427/bfmtv/04.m3u8";
    echo $src_tele;
?>
<object>[...]</object>
DayTech
Auteur

Salut !
keulu, ce que tu m'as dis de faire ça fonctionne ! Mais justement, y'a pas un autre moyen que le switch case ?? ;)

J'ai regardé mon htaccess, j'ai vu que j'avais une case pour la page "radio"(http://www.bb-info.fr/radio.html), qui elle fonctionne correctement, voici mon contenu de mon htaccess

Mon but est de faire exactement pareil que pour la radio, mais afficher la télé !

RedirectPermanent /stats http://www.bb-info.fr/awstats/awstats.pl?config=www.bb-info.fr
RewriteEngine On
#RewriteBase / 
RewriteRule    ([a-z]+)-([a-z]+)\.html$ /index.php?page=$1&station=$2 [L]
RewriteRule    ([a-z]+)\.html$ /index.php?page=$1
Options -Indexes

Peut-être que je devrais copier/coller la ligne

RewriteRule    ([a-z]+)-([a-z]+)\.html$ /index.php?page=$1&station=$2 [L]

et remplacer par

RewriteRule    ([a-z]+)-([a-z]+)\.html$ /index.php?page=$1&television=$3 [L]

????
Si ça vous aide...
Cordialement, DayTech

DayTech
Auteur

MILLE MERCI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Tu as réussi à faire ce que je voulais depuis une semaine !
Encore une fois merci à toi !!!!!

Également, je tenais à remercie les autres membres qui ont essayer de m'aider, merci d'avoir été patient avec moi !!!!!

Encore une fois merci,
Cordialement, DayTech.