Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MP3 mit exec auf Server wiedergeben.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] MP3 mit exec auf Server wiedergeben.

    Hallo, es ist zum verzeifeln.

    Ich versuche seit Tagen, eine MP3-Datei über exec wiederzugeben. Wenn ich den Befehl lokal in den Terminal eingebe, wird die Datei wiedergegeben. Steht der Befehl aber in der PHP-Datei, wird nur eine Fehlermeldung erzeugt.
    PHP-Code:
    <?php
    exec
    ('mpg321 /var/www/test.mp3');
    ?>
    Und das steht in der error.log-Datei :
    Code:
    High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
    Version 0.59q (2002/03/23). Written and copyrights by Joe Drew.
    Uses code from various people. See 'README' for more!
    THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
    Title  :                       Artist:               
    Album  :                     Year  :
    Comment:                  Genre :                         
    
    Directory: /var/www/
    Playing MPEG stream from test.mp3 ...
    MPEG 1.0 layer III, 320 kbit/s, 44100 Hz joint-stereo
    Home directory /var/www not ours.
    ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
    ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
    ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
    ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
    ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
    ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
    ALSA lib conf.c:4633:(snd_config_expand) Evaluate error: No such file or directory
    ALSA lib pcm.c:2211:(snd_pcm_open_noupdate) Unknown PCM default
    ALSA snd_pcm_open error: No such file or directory
    HOME environment variable not set?
    Can't find a suitable libao driver. (Is device in use?)
    Kann mir jemand helfen? Wieso kann ich den Befehl im Terminal ausführen, in der PHP-Datei aber nicht?


  • #2
    wie startest du das script denn? über den browser oder die console?

    Kommentar


    • #3
      Das Skript wird über den Browser gestartet.

      Kommentar


      • #4
        Zitat von T-boy1994 Beitrag anzeigen
        Wieso kann ich den Befehl im Terminal ausführen, in der PHP-Datei aber nicht?
        Der Benutzer, der den Webserver ausführt, hat keine Berechtigung, auf das Audio-Device zuzugreifen. Führe die PHP-Datei über die Kommandozeile aus.
        Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

        Kommentar


        • #5
          Dann startet also der Webserver das script und der wiederum läuft wahrscheinlich unter dem User wwwrun o.ä., das würde die Meldung "HOME environment variable not set?" erklären

          EDIT: da war wohl jemand schneller

          Kommentar


          • #6
            Das Skript muss über den Browser gestartet werden, da es später ein Teil einer Musikverwaltung werden soll.

            Ich habe mir den Benutzer zeigen lassen, der die Datei ausführt.
            PHP-Code:
            <?php
            echo exec('whoami');
            ?>
            Der Benutzer heißt "www-data", den habe ich zur "audio"-Gruppe hinzugefügt, damit sollte er ja die Möglichkeit haben, Sound über die Soundkarte wiederzugeben. An der Fehlermeldung ändert sich äber nichts.

            Gibt es denn eine andere Möglichkeit, Audio-Dateien auf dem Server wiederzugeben, ausgelöst durch eine im Browser aufgerufene Datei?

            Kommentar


            • #7
              Im Browser einstellen dass er .pls / .m3u autoamtisch mit deinem bevorzugten musik-programm öffnen sollen und dann einfach in der musikverwaltung dem browser ne .pls/.m3u mit den ausgewählten liedern schicken, dann wird es ja unter dem user ausgefährt unter dem du am system angemeldet bist mit ner gui und allem.
              robo47.net - Blog, Codeschnipsel und mehr
              | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

              Kommentar


              • #8
                Tut mir leid, ich habe mich wohl etwas falsch ausgedrück.
                Mein Server läuft hier ohne grafische Oberfläche und ist an Boxen angeschlossen. Wenn ich das Skript von einem anderen Rechner über den Browser öffne, soll auf dem Server die Datei wiedergegeben werden.

                Der Sinn dahinter soll sein, dass man von jedem Computer im Netzwerk die Wiedergabe auf dem Server steuern kann.

                Kommentar


                • #9
                  vielleicht mal mpd + http://mpd.wikia.com/wiki/Clients#Web_Clients_2 anschauen ? gibt es auch php-lösungen da kannst du dir vielleicht was abschauen.
                  robo47.net - Blog, Codeschnipsel und mehr
                  | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

                  Kommentar


                  • #10
                    Vielen Dank! Das ist genau das, was ich gesucht habe! Danke!

                    Kommentar

                    Lädt...
                    X