Forum

Forum (https://www.coolstreaming.us/forum/)
-   Guide (https://www.coolstreaming.us/forum/a/)
-   -   Come mettere gli stream in una pagina web con il PHP (https://www.coolstreaming.us/forum/a/14931-a.html)

Ogher 11-27-2006 12:57 AM

Come mettere gli stream in una pagina web con il PHP
 
Premessa
Prima di cominciare la lettura vi segnalo subito dei link utili per i più curiosi:
-Php (Wikipedia)
-Guida di base al php (html.it)
-Manuale ufficiale

Ricordo che essendo un linguaggio di scripting il codice scritto nelle pagine *.php deve essere interpretato da un server; quindi, se aprite le pagine con un browser, queste non funzioneranno.
Il metodo più semplice per provare le pagine è registrarsi uno spazio su un
hosting gratuito (es: altervista, netsons, ecc) e uploadare tutto lì.


Cominciamo...
Il codice che andremo ad usare per integrare i vari player nelle nostre pagine è lo stesso che ABNormal ha già illustrato qui ma queste pagine saranno dinamiche.
Esempio: noi abbiamo 100 canali televisivi da mostrare nel nostro sito, usando l'html "puro" dovremo creare 100 pagine diverse (che palle), mentre questo problema può essere risolto da una sola pagina php.
Per fare ciò useremo le variabili di tipo GET e passeremo l'url del canale da visualizzare alla nostra pagina che contiene il player.
La variabile $_GET['nome_variabile'] è spiegata bene qui (Messaggio ai più pigri: son poche righe leggetele... ;) )

Quindi creremo la pagina "player.php" e passeremo con GET l'url del canale così "player.php?url=mms://mioserver:nnnn"

Dato che il procedimento è sempre lo stesso, vi faccio vedere come realizzare la pagine per il windows media player, il procedimento è lo stesso per tutti i player

player1.php , versione ultra semplice

PHP Code:
 <div align="center">
<!-- For 
Internet Explorer Windows Media Player -->
<
object classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6"  type="application/x-oleobject" width="320" height="305"  codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"  standby="Loading Microsoft Windows Media Player components...">
  <
param name="url" value=" <?php echo $_GET['url']; ?>">
  <
param name="autostart" value="true">
  <
param name="ShowStatusBar" value="true">
  <
param name="volume" value="100">
  <!-- For 
other browsers Windows Media Player -->
  <!--[if !
IE]> <-->
  <
object width="320" height="305" type="application/x-mplayer2" >
   [
HTML]<param name="fileName" value="<?php echo $_GET['url']; ?>">[/HTML]
   <
param name="autostart" value="1">
   <
param name="ShowStatusBar" value="1">
   <
param name="volume" value="0">
  </
object>
 <!--> <![endif]>
 </
object>
 </
div


Come potete notare dove bisognerebbe scrivere l'url del canale ho inserito :
PHP Code:
<?php echo $_GET['url']; ?>

<?php e ?> sono i tag che dicono al server che lì in mezzo c'è del codice php
echo è una funzione che serve a stampare sullo schermo
Quindi quando la pagina verrà interpretata dal server al posto di questo piccolo pezzetto di codice ci sarà scritto l'url che abbiamo passato alla pagina.
Esempio: se l'abbiamo chiamata con "player.php?url=mms://mioserver:nnnn" se andiamo nel codice troveremo:
HTML Code:
<param name="url" value="mms://mioserver:nnnn">


player2.php , inseriamo qualche controllo

Ora inseriamo nella paginetta un altro pezzettino di codice che serve a controllare l'url:

PHP Code:
 if (!isset($_GET['url']) OR strpos($_GET['url'], 'mms://'0)=== false)
die(
"<center><h2>Url non valido!</h2></center>");
?>
<div align="center">
<!-- For Internet Explorer * Windows Media Player -->
<object classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6"  type="application/x-oleobject" width="320" height="305"  codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"  standby="Loading Microsoft Windows Media Player components...">
  <param name="url" value=" <?php echo $_GET['url']; ?>">
  <param name="autostart" value="true">
  <param name="ShowStatusBar" value="true">
  <param name="volume" value="100">
  <!-- For other browsers * Windows Media Player -->
  <!--[if !IE]> <-->
  <object width="320" height="305" type="application/x-mplayer2" >
   <param name="fileName" value="<?php echo $_GET['url']; ?>">
   <param name="autostart" value="1">
   <param name="ShowStatusBar" value="1">
   <param name="volume" value="0">
  </object>
 <!--> <![endif]>
 </object>
 </div> 

In italiano andrebbe letto così:
se la variabile $_GET['url'] non esiste o se non comincia per mms:// interrompi la pagina (die) e stampa "Url non valido!". Poi il codice è uguale a player1.php
Quindi se per sbaglio apriamo player.php senza passargli l'url oppure con un link sbagliato (ad esempio uno di sopcast) possiamo accorgerci dell'errore.

Esempio più interessante

Nel prossimo esempio uso una tabella sulla colonna di sinistra ci sono i link ai canali, su quella di destra c'è un iframe in cui viene caricato il player.

index.html
HTML Code:
<div align="center"><table border="1"> <tr> <td><table border="1"> <tr><td><a target="frame" href="prova.php?url=mms://canale1&nome=Canale di prova 1">Link 1</a></td></tr> <tr><td><a target="frame" href="prova.php?url=mms://canale2&nome=Canale di prova 2">Link 2</a></td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> <tr><td>Link 1</td></tr> </table></td> <td><iframe name="frame" src="player3.php" frameborder="0" width="330" height="315" scrolling = no></iframe></td> </tr> </table> </div>

player3.php
PHP Code:
<?php
if (!isset($_GET['url']) OR strpos($_GET['url'], 'mms://'0)=== false)
die(
"<center><h2>Url non valido!</h2></center>");
?>
<div align="center">
<h2><?php echo $_GET['nome'];?></h2><br>
<!-- For Internet Explorer * Windows Media Player -->
<object classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6"  type="application/x-oleobject" width="320" height="305"  codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"  standby="Loading Microsoft Windows Media Player components...">
  <param name="url" value=" <?php echo $_GET['url']; ?>">
  <param name="autostart" value="true">
  <param name="ShowStatusBar" value="true">
  <param name="volume" value="100">
  <!-- For other browsers * Windows Media Player -->
  <!--[if !IE]> <-->
  <object width="240" height="200" type="application/x-mplayer2" >
   <param name="fileName" value="<?php echo $_GET['url']; ?>">
   <param name="autostart" value="1">
   <param name="ShowStatusBar" value="1">
   <param name="volume" value="0">
  </object>
 <!--> <![endif]>
 </object>
 </div>


C'è poco da commentare, è molto semplice. Come potete vedere qui sotto mi sono costruito il link prova.php?url=mms://canale1&nome=Canale e ho aggiunto anche la variabile 'nome' così nel sopra il player verrà visualizzato il nome del canale (ho aggiunto un pezzettino di codice in player3 che stampa la variabile nome).
Potete vede questa paginetta in azione qui

Concludendo...
Ho appena accennato all'argomento php, ma spero di avervi spiegato lo stretto necessario per cominciare a fare qualche paginetta interessante, con un po' di impegno si possono ottenere ottimo risultati.

Per delucidazioni, segnalazioni e quant' altro son qua :)

ciaoo

giorgio_perkins 02-15-2010 03:22 AM

io provo a chiedere
 
Ogher ... ho notato il tuo STRAORDINARIO post.. e mi permetto di chiederti chiarimenti..
Sto realizzando un player appoggiato a wmp che riceva il canale streaming di una emittente.. ( cosa facilissima ).. Ebbene, il DJ che lavora nella emittente è un mio carissimo amico e pertanto vorrei ripetere SOLO il programma che fa lui il venrdì dalle 21 alle 23.. ( quì le cose si complicano.. ) Pertanto avevo pensato di chiamare la variabile <param name="enabled" value=" <?php echo $_GET['enabled']; ?>">, dalla player.php per posizionarla nella pagina html .
Nella player.php ho recuperato il giorno della settimana ( venerdì = 5 ) e l'ora con i minuti..

<?php
$giorno = date("w" ,date);
$ora = date(H ,date);
$minuti = date(i ,date);
if (($giorno=="5")&&(ora<23)&&(ora>21)) player.php?enabled=-1;
else player.php?enabled=0;
?>

pertanto pensavo di passare l'informazione enabled 0 / -1 alla pagina html e di attivare il funzionamento del player o disattivarlo.
Chiaramente essendo una pagina statica chi si fosse collegato nella fascia oraria di trasmissione , non sarebbe stato "scaraventato fuori" al termine dell'orario ma sarebbe rimasto collegato fino al primo refresh di pagina che avesse volontariamente fatto.. chiunque avesse tentato il collegamento nei giorni e fasce orarie non consentiti , avrebbe trovato il player visibile ma disattivato ( vedi pure il mio sito xxx.giorgioperkins.it alla voce streamers )
Pensi di potermi dare una spinterella ad uscire dal problema? ti sarei grato.. Giorgio Perkins DJ..

Ogher 02-15-2010 01:32 PM

Secondo me ti conviene usare javascript e con un timer controlli periodicamente l'ora.
Timer: http://it.wikibooks.org/wiki/JavaScript/Timer
Wmp via javascript (verso la fine): http://www.mioplanet.com/rsc/embed_mediaplayer.htm
Per adesso non riesco a dirti altro, se hai qualche dubbio chiedi pure.


All times are GMT +2. The time now is 09:54 PM.

Powered by: vBulletin Version 3.0.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.