Pour les utilisateur de darwin streaming server (ou qtss)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 932 fois - Téléchargée 26 fois

Contenu du snippet

Ce code servira à tous les utilisateurs de Darwin Streaming Server ou QuickTime Streaming Server.
Dans une utilisation du serveur en mode Live (et non pas à la demande), ce code permet savoir ce qui est diffusé au moment où l'on arrive sur la page, de récupérer la playlist et d'autres petites informations.

Ce code a été testé avec Darwin 5.5 et uniquement sous linux (debian et mandriva).
Pour que le code fonctionne, vous devez disposer des droits de lecture du repertoire et des fichier de "/var/streaming/playlists" (voir le repertoire dans la doc selon la version et l'os).

le paramètrage du code est simple : il faut renseigner les 2 premières lignes en donnant le nom de la playlist et le repertoire des fichiers d'information de DSS (par défaut /var/streaming/playlists).

Ensuite, il suffit de mettre ce code au début de la page. Il créera 2 variables de type array : $dss_current et $dss_playlist.

Voir en dessous du code pour plus d'explication

Source / Exemple :


<?php

//    Définition des chemins des fichiers

$name_playlist="nom_playlist";
$dir="/var/streaming/playlists/$name_playlist";

$current=$dir."/".$name_playlist.".current";
$playlist=$dir."/".$name_playlist.".playlist";

// Récupération des données

#####  le fichier multimédia courant (en train d'être diffusé) #####
if (is_readable($current)) {
		$tmp_current=file($current);
		
		//traitement des données
		$path=trim(substr($tmp_current[0],strpos($tmp_current[0],"/")));
		$name=trim(substr($tmp_current[0],strrpos($tmp_current[0],"/")+1));
		
		$debut=trim(substr($tmp_current[1],strpos($tmp_current[1]," ")+1));
		$debut=substr($debut,0,strpos($debut," "));
		
		$fin=trim(substr($tmp_current[2],strpos($tmp_current[2]," ")+1));
		$fin=substr($fin,0,strpos($fin," "));
		
		$duree=substr($tmp_current[3],strpos($tmp_current[3]," ")+1);
		$duree=substr($duree,0,strpos($duree," "));
		
		$dss_current=array(0=>$path,'path'=>$path,
						   1=>$name,'name'=>$name,
						   2=>$debut,'debut'=>$debut,
						   3=>$fin,'fin'=>$fin,
						   4=>$duree,'duree'=>$duree);

}else{
	echo "Le fichier $current n'est pas accessible";
}

#####  La playlist complète  ####
if(is_readable($playlist)){
		$tmp_playlist=file($playlist);
}else{
	echo "Le fichier $playlist n'est pas accessible";
}
for($i=4;$i<sizeof($tmp_playlist);$i++){
	$j=$i-4;
	
	$dss_playlist['path'][$j]=substr($tmp_playlist[$i],strpos($tmp_playlist[$i],"\"")+1,strrpos($tmp_playlist[$i],"\"")-1);
	$dss_playlist['name'][$j]=substr($dss_playlist['path'][$j],strrpos($dss_playlist['path'][$j],"/")+1);
}

//détruit les variables temporaires
unset($tmp_current, $tmp_playlist);
?>

Conclusion :


$dss_current : tableau accessible par indice ou en assoc :
[0]=['path'] => Chemin complet du fichier courant (/usr/local/movies/sample.mov)
[1]=['name'] => Nom du fichier courant (sample.mov)
[2]=['debut'] => Date du début de la lecture en timestamp Unix (1171542513)
[3]=['fin'] => Date de fin de la lecture en timestamp Unix (1171544251)
[4]=['duree'] => Duree du fichier multimedia en timestamp Unix (770)

$dss_playlist : tableau multidimensionnel (2)
$dss_playlist['path'][0] -> $dss_playlist['path'][n] => Chemin complet de tous les fichiers de la playlist
$dss_playlist['name'][0] -> $dss_playlist['name'][n] => Nom de tous les fichiers de la playlist

Voilà pour récupérer les infos.

NB: J'ai réalisé ce code rapidement et il doit surement être facilement améliorable. Soyez indulgents SVP.

A voir également

Ajouter un commentaire

Commentaires

NewSky
Messages postés
86
Date d'inscription
dimanche 27 janvier 2002
Statut
Membre
Dernière intervention
20 février 2009
-
C bizarre!! Juste avant de déposer le commentaire précédent, il y avait une question sans rapport avec le code! J'ai donc renvoyé un commentaire et cette question a disparu!! Beug??!!
NewSky
Messages postés
86
Date d'inscription
dimanche 27 janvier 2002
Statut
Membre
Dernière intervention
20 février 2009
-
Désolé, mais y'a un forum pour ce genre de questions.
Merci.
cs_wizad
Messages postés
356
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
14 avril 2009
-
Il est préférable (et plus rapide) d'utilise les guillemets simple pour les chaines de caractère (hors requète sql)

exemple :
echo "Le fichier $current n'est pas accessible";
devient
echo 'Le fichier '.$current.' n\'est pas accessible'; => c'est mieux (bon faut juste échapper les apostophes).

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.