Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/08/2013, à 00:14

jeanbaptistedelon

Double serveur mpd sur raspberry pi avec raspibian

Bonsoir,

Je suis actuellement en train de développer une interface web pour contrôler le MPD sur mon raspberry pi. Tout marche comme je veux : j'ai utilisé une classe toute faite :  mpd class (mpd-class-php-1.2). Mon but est de faire une sorte de sampler : celui-ci est presque atteint, puisque j'arrive à obtenir une liste de musique sur ma page.
Lorsque je clique sur une chanson : la musique en cours de lecture se coupe, et la musique souhaitée se lance. (Un bouton stop permet d'arrêter la musique.)
Je souhaiterais une petite subtilité : lorsque je clique sur une musique : la musique en cours de lecture ne se coupe pas et la musique souhaitée se lance en fondu.
Je sais que c'est possible avec le HTML ; mais cela n'a rien à voir dans mon cas.

Avec mpd, j'ai essayer en créant une nouvelle connexion et en ouvrant deux connexions simultanément :

$myMpd = new mpd('localhost',6600);
$myMpd2 = new mpd('localhost',6600);
/*
Le Code [...]
*/
$myMpd->Disconnect();
$myMpd2->Disconnect();

ça ne marche pas : ce qui ne m'étonne pas vraiment smile

Comment dois-je faire ? Installer deux serveurs mpd sur mon raspberry pi ?


Merci d'avance pour vos réponses

Dernière modification par jeanbaptistedelon (Le 27/08/2013, à 00:15)

Hors ligne

#2 Le 27/08/2013, à 11:23

Epehj

Re : Double serveur mpd sur raspberry pi avec raspibian

Salut,
Je ne pense pas que tu ai besoin de deux serveurs.
Par contre il faut bien lancer MPD avec le crossfade activé.

mpd crossfade x

avec x le nombre de seconde de fondu

http://mpd.wikia.com/wiki/Music_Player_ … leshooting
http://www.musicpd.org/doc/protocol/ch03s02.html

Je sais pas si ça fonctionne mais c'est ce que j'ai trouvé dans la doc'


Linux user #447629 - Ubuntu user # 21770
C'est en sciant que Léonard devint scie

Hors ligne

#3 Le 27/08/2013, à 19:20

jeanbaptistedelon

Re : Double serveur mpd sur raspberry pi avec raspibian

Merci j'ai essayé ! smile
...
Mais ça ne marche pas...:P

Je me permets de vous donner mon code ce sera bien plus simple :

<?php

echo '<a href="'.$_SERVER[PHP_SELF].'"">Rafraichir</a><br /><br />';

require('playlist.php');
//Fichier contenant la playlist sous forme de tableau ($songArray1())
//La playlist a été chargée dans une page précédente

require('mpd.class.php');
//http://mpd.24oz.com/ pour télécharger

	$myMpd = new mpd('localhost',6600);
	//Ouverture connexion

$myMpd->crossfade = 15;
// ???



$next_song = $_GET['next_song'];
if (isset($next_song)) {
	if ($next_song != ""){
		if (is_numeric($next_song)){
			if (isset($songArray1[$next_song])) {
				if ($songArray1[$next_song] != "") {
					$myMpd->SkipTo($next_song);
				}
			}
		}

	}
}
//permet de skipper via méthode $_GET[]

$stat = $_GET['stat'];
if (isset($stat)) {
	if ($stat != ""){
		if ($stat == "stop1"){
			$myMpd->Stop();
		}
	}
}
//permet de stopper via méthode $_GET[]

$p = 0;
while ($songArray1[$p] != "" Or isset($songArray1[$p])) {
	echo '<a href="'.$_SERVER[PHP_SELF].'?next_song='.$p.'">'.substr($songArray1[$p], 0, strlen($songArray1[$p]) - 4).'</a><br />';
	$p++;
}
// On affiche les chansons avec possibilité de cliquer dessus pour skipper dessus


echo '<br /><br /><a href="'.$_SERVER[PHP_SELF].'?stat=stop1">Annuler</a><br />';
// Lien pour stopper

$myMpd->Disconnect();
//Déconnexion


?>

Bien cordialement,

Dernière modification par jeanbaptistedelon (Le 27/08/2013, à 19:21)

Hors ligne

#4 Le 15/04/2014, à 11:36

jeanbaptistedelon

Re : Double serveur mpd sur raspberry pi avec raspibian

Finalement, j'ai enlevé cette classe car elle n'est pas top
puisque certaines fonctionnalités ne sont pas prises en compte comme le cross fade par exemple.
Je suis donc avec des exec en php, et je m'en sors mieux. Cependant le cross fade permet de lire des musiques avec des fondus enchaînés de x secondes entre, mais pas de lire dans une nouvelle instance plusieurs sons qui sont mélangés ensembles.
Avez-vous d'autres idées, suggestions à me proposer ?

Hors ligne

#5 Le 24/10/2015, à 20:56

jeanbaptistedelon

Re : Double serveur mpd sur raspberry pi avec raspibian

Bonjour,
je me permets de revenir sur ce forum un an et demi après car j'ai trouvé la réponse ! (mieux vaut tard que jamais).

Il faut revenir à la base du problème : la librairie mpd et non pas la classe PHP dans mon exemple.
Oublions l'histoire de la classe PHP et revenons au moment où l'on vient juste d'installer mpd et de le configurer...

Voici ce qu'il faut faire au minimum :

  • Editer le fichier /etc/mpd.conf :

Configurer le périphérique de sortie comme périphérique logiciel et non matériel
Pour cela commenter les lignes suivantes

audio_output {
	type		"alsa"
	name		"My ALSA Device"
#	device		"hw:0,0"	# optional
#	format		"44100:16:2"	# optional
	mixer_device	"default"	# optional
	mixer_control	"PCM"		# optional
#	mixer_index	"0"		# optional
}

Puis changer le mixeur :

mixer_type			"software"

Si besoin dé commenter la ligne de configuration du port réseau.

  • Copier le fichier de configuration /etc/mpd.conf dans un nouveau que l'on va nommer différement pour la deuxième instance

sudo cp -a /etc/mpd.conf /etc/mpd2.conf
  • Editer le fichier etc/mpd2.conf :

Changer le port :

port				"6601"

Et remplacer mpd par mpd2 dans les chemins des variables de configurations suivantes : playlist_directory, db_file, log_file, pid_file, state_file.

  • Lancer la deuxième instance simplement !

mpd /etc/mpd2.conf

Si des erreurs se présentent, copier les répertoires manquants de mpd vers mpd2.



Source : https://crudelis.fr/site/sblog/2012/02/ … es-de-mpd/

Dernière modification par jeanbaptistedelon (Le 24/10/2015, à 21:02)

Hors ligne