PHP: Wie kann man Töne abspielen?

Hallo Forum,
Ich habe eine Frage zu php: Kann man, und wenn ja wie Töne mit PHP abspielen?
Ich freue mich auf jede Antwort.
Gruß farmeramanews

mit php direkt nicht. vielleicht gibts ja eine api von gstreamer o.Ä, aber das läuft dann nur, wenn php im cli mode läuft.

wenn du auf einer website musik abspielen magst, musst du auf javascript z.B. zurückgreifen.

Und wie geht das mit Javascript. Ich hab mit Musik noch nicht so viel Ahnung bei Webseiten.
Gruß farmeramanews

zb mit flash, oder als hintergrund in einem tag oder mit dem html5-tag …

Um das Ganze mal etwas zu entwirren:
PHP ist eine Skriptsprache, die auf dem server interpretiert wird,
wird ein solches aufgerufen, bekommt der browser nur die Ausgabe
des Skriptes ausgeliefert - was in nahezu beliebigen Formaten
erfolgen kann. Ob der browser dann das ausgelieferte Format
interpretieren kann, ist ein komplett anderes Problem.

Prinzipiell kann man natürlich mit PHP audio-Formate erstellen und
ausgeben. Spezielle Funktionen dafür hat PHP allerdings nicht,
anders etwa als für Pixelgraphik. Das muß man dann also alles
selber machen - oder ein Modul finden, wo dies schon sonst
jemand gemacht hat.

Eine Variante, die ich schon mal realisiert habe, ist ein einfaches
Musikinstrument mittels SVG tiny 1.2. Die jeweiligen Töne für
ein oder zwei Oktaven sind da jeweils als einzelne Audio-Dateien
im Format OGG vorhanden und im SVG-Dokument mit dem
Element audio referenziert. Durch Interaktion kann man dann
die Töne starten und damit einfache Melodien spielen oder einfach
herumklimpern. Mal abgesehen von kleineren Mängeln ist sowas
z. B. mit Opera nachzuvollziehen, bei dem bereits Teile von
SVG tiny 1.2 implementiert sind.
Sowas ist mit (X)HTML (+OGG) nicht machbar, weil man auch
bei dem Arbeitsentwurf für HTML5 solche Elemente wie audio
nicht interaktiv und deklarativ starten und stoppen kann, was
bei SVG kein Problem ist - insofern ist audio kein Fortschritt
gegebenüber object, was es ja schon seit HTML4 gibt (wo man
theoretisch sogar etwas starten könnte, wobei dies bei gängigen
browsern aber nie implementiert wurde). HTML5-audio muß man
immer starten, kann aber auch nicht deklarativ bestimmen, wann
es aufhören soll.

Noch eleganter wäre ein XML-Format, wo man direkt angeben
könnte, welcher Ton wie lange abgespielt wird, das ist aber bei
keinem browser nachvollziehbar - ich habe mal einen Vorschlag
für eine Erweiterung für SVG gemacht, ist aber wohl
unwahrscheinlich, daß die umgesetzt wird, weil das viel zu
praktisch für Autoren wäre (wo kommen wir denn da hin, wenn
irgendwas mal einfach so und praktisch funktionieren würde?)

@hoffmann: Es gibt kein Stop, aber Pause für HTML5-Audio. Für einen Neustart muss man dann die Position aif 0 zurücksetzen:
position-absolute.com/articl … ipulation/

@progandy:
Dein Vorschlag ist gut, ich werde ihn wahrscheinlich benutzen. Aber auf der Seite von deinem Link, das versteh ich nicht so ganz. Wie kann man jetzt einen Einzelnen Ton abspielen. Könnte mir das jemand jetzt nochmal genau demonstrieren. Ich möchte einen Chat machen und will, das wenn die Nachricht an einen bestimmten ging, das der mit einem ton benachrichtigt wird.
@alle: Danke für eure anderen Antworten.
Gruß farmeramanews

@farmeramanews
schon ma die AGB’s gelesen xD?
Oder nutzt du kein bplaced?

Allgemein ist man aber eigl. besser bedient wenn man IRC o.ä. nutzt, 1. gibts dafür ne Menge Clients [size=85](sowohl in Flash/Java/PHP für die Webseite, als auch richtige^^)[/size] und zum anderen bietet es eigl. alles wichtige xD XMPP size=85[/size] tuts aber genauso.

progandy - wie ich schon schrieb, audio ist nicht deklarativ
ansteuerbar, sondern bestenfalls über Skript. Der Vorteil des
HTML5-Vorschlags ist allerdings, daß angegeben ist, daß der
browser selbst Möglichkeiten anbieten soll, um mit dem Inhalt
zu interagieren, also Start, Stop, vorwärts und rückwärts suchen
etc - sofern dem Autor das reicht, braucht der ja selbst kein
eigenes Menü zu erstellen, dafür gibt es dann für den Autor
gar keine Steuerungsmöglichkeiten über simple Attribute,
allenfalls über unzugängliche Skripte, die beim Nutzer ja nicht
funktionieren müssen - die Möglichkeiten von SMIL und SVG,
zu denen der HTML5-Entwurf leider inkompatibel ist (der
HTML5-Editor hat mal wieder das Rad neu erfunden, nur in
diesem Falle eher eiförmig, damit es nicht so gut rollt ;o), bieten
Autoren mehr Möglichkeiten und eine bessere Zugänglichkeit zur
Interaktion, ist besser durchdacht, sagen aber nicht explizit, daß der
browser selbst ein Menü anbieten muß - das ist beim
HTML5-Entwurf besser geregelt.

Bei dem Anliegen hier, wann ein Ton abgespielt werden soll,
muß man aber generell genau gucken, wie der chat funktioniert,
um sowas mit bestimmten Ereignissen zu korrelieren.
Bei den chats, die ich mal gebastelt habe, wurde automatisch
nach einigen Sekunden aktualisiert (PHP-chat mit frames und
reiner (X)HTML-Ausgabe), da muß das PHP-Skript dann nur gucken,
ob überhaupt was neues geschrieben wurde und wenn ja eben
ein object mit dem Ton ausgeben. Anders als HTML5-audio startet
object von selbst, braucht also keine Nutzerinteraktion oder gar
ein javascript.
Muß man dann eben nur einen server haben, wo man solch einen
chat drauf laufen lassen kann …

[quote=“White-Tiger”]@farmeramanews
schon ma die AGB’s gelesen xD?
Oder nutzt du kein bplaced?

Allgemein ist man aber eigl. besser bedient wenn man IRC o.ä. nutzt, 1. gibts dafür ne Menge Clients [size=85](sowohl in Flash/Java/PHP für die Webseite, als auch richtige^^)[/size] und zum anderen bietet es eigl. alles wichtige xD XMPP size=85[/size] tuts aber genauso.[/quote]
Heißt das jetzt, dass ich keinen Chat auf meiner Seite anbieten darf?
Fast selbst programmiert, kein professioneller Chat. Ohne Flash.
Ich hoffe das ich es darf, weil ich mir jetzt schon so viel Mühe damit gemacht habe.
Gruß farmeramanews

Hallo,

nein, jegliche Chats oder Shoutboxen sind verboten, ist aber nicht erst seit Vorgestern so.
Dazu bitte noch die AGB studieren. :wink:

Gruss

Das finde ich wirklich schade. :neutral_face:
Gruß farmeramanews

Ums noch mal genau zu nennen, mit [quote=“White-Tiger”][]
Allgemein ist man aber eigl. besser bedient wenn man IRC o.ä. nutzt, 1. gibts dafür ne Menge Clients [size=85](sowohl in Flash/Java/PHP für die Webseite, als auch richtige^^)[/size] und zum anderen bietet es eigl. alles wichtige xD XMPP size=85[/size] tuts aber genauso.[/quote] meinte ich das solche Chats eben allgemein Sinvoller sind und eben obendrein hier auch erlaubt sind :wink: Denn bei IRC und XMPP sind die Chat-Server verständlicherweise nicht auf den Servern von bplaced sondern Extern und belasten damit bplaced nicht. Auch Flash und Java Clients [size=85](oder Javascript extern eingebunden)[/size] sind nicht auf dem Server bzw. werden dort nicht ausgeführt sondern beim Client. size=85[/size]

Kurz: alle Chats auf den bplaced Servern sind wegen Idiotie und der damit verbundenen unnötigen Belastung verboten. [size=85](Da Browser/Webseiten nicht zum Chatten gedacht sind^^ Dafür gibts Clients für’n PC / für’s Smartphone welche wesentlich komfortabler sind und auch weniger Ressourcen fressen)[/size]
Chats die nicht auf bplaced liegen, sondern Extern eingebunden werden sind erlaubt [size=85](belasten ja bplaced nicht. Was bplaced nicht weiß, macht bplaced nicht heiß. Bezogen auf die Chats/Anwendungen die den Server nicht belasten)[/size]

Nein, es dürfen keine Chats auf bplaced gehostet werden. Du darfst hingegen externe Chats einbinden. Im Übrigen hast du die AGB ja sicher gelesen, oder würdest du jemals etwas akzeptieren, ohne es vorher anzusehen? :astonished:

Mfg :wink2:

edit: oh, da gabs noch ne 2. seite…

[quote=“Mgier”][] oder würdest du jemals etwas akzeptieren, ohne es vorher anzusehen? :astonished:
[][/quote]Ehrliche Antwort? Jawollja!
Zum einen steht da immer der Standardwisch drinne [size=85](bla bla bla, wir können deinen Space löschen wenn’s uns juckt, du hast kein Anrecht auf den Dienst, halte deinen Space gefälligst sauber und sicher, keine Server belasten etc.)[/size] und zum anderen wäre es egal wenn dort verstecke kosten stehen würden, da diese vor Gericht nicht gültig sind :wink: [size=85](immerhin ist der Dienst kostenlos, wobei hier die selben AGB’s fürs Kostenlose als auch nicht Kostenlose gelten. Wobei natürlich auch klar ist, das eine bezahlte Leistung erbracht werden muss oder das Geld zurück, daher dürfen Bezahlte Accounts nicht einfach ohne Grund gelöscht werden.)[/size]

Gelesen hab ich’s aber dennoch :wink: [size=85](immerhin will man als User-Helfer wissen worum es so geht^^ Bissle lang sind die AGB’s aber dennoch)[/size]

PS: die AGB’s hören sich teils schlimmer an als Sie sind… der unseriöse Teil muss leider so drinstehen, da sonst User die gegen die AGB’s o.ä. verstoßen bzw. einfach unethischen Inhalt auf Ihrem Space haben, gegen bplaced klagen könnten etc. Firmen [size=85](als auch User/Kunden)[/size] müssen sich leider gegen alle möglichen Missentwicklungen absichern die einen sonst um Tausende Euros verklagen :wink: [size=85](und gewinnen)[/size]

Ich werde dann von einer anderen Seite den Chat per Frameset einbinden, danke für eure Hilfe.
Also nochmal zu meiner Anfangsfrage:
Zu diesem Beitrag: [quote]Bei dem Anliegen hier, wann ein Ton abgespielt werden soll,
muß man aber generell genau gucken, wie der chat funktioniert,
um sowas mit bestimmten Ereignissen zu korrelieren.
Bei den chats, die ich mal gebastelt habe, wurde automatisch
nach einigen Sekunden aktualisiert (PHP-chat mit frames und
reiner (X)HTML-Ausgabe), da muß das PHP-Skript dann nur gucken,
ob überhaupt was neues geschrieben wurde und wenn ja eben
ein object mit dem Ton ausgeben. Anders als HTML5-audio startet
object von selbst, braucht also keine Nutzerinteraktion oder gar
ein javascript.[/quote]
Also,der Chat funktioniert genau so :slight_smile: Das mit dem Script wäre nicht das Problem, nur kann mir jetzt einer noch genau erklären wie man einen Bestimmten Ton abspielt?
Gruß farmeramanews

Das Problem läßt sich in verschiedene Unterprobleme aufspalten:

  1. ermitteln, welche Formate benötigt werden, also etwa OGG,
    WAV, MP3 etc, muß man gucken, welche browser da was
    interpretieren, die haben sich leider nicht einigen können,
    weswegen man mehrere Formate bereithalten muß.
    Da ältere browser das pauschal immer per plugin abspielen
    werden, macht man besser ein paar Formate mehr, damit man
    sicher eines dabei hat, was auf dem jeweiligen browser des
    Nutzers wirklich funktioniert, auch wenn der einen älteren
    browser verwendet (sicher sein kann man sich natürlich nie -
    nicht alle haben ein plugin aktiv oder auch nur einen Lautsprecher
    am Rechner).

  2. Die Töne in den jeweiligen Formaten erzeugen, einfache Töne und
    Effekte habe ich etwa mit Audacity erzeugen können, kann man
    unter Debian, Ubuntu etc einfach als Paket installieren, wird es
    für andere Systeme wohl auch geben.

  3. Einbinden in eine (X)HTML-Ausgabe ist recht einfach:

<object data="KammertonA.oga" type="audio/ogg">
<object data="KammertonA.mp3" type="audio/mpeg">
<object data="KammertonA.wav" type="audio/x-wav">
- ggf. weitere Formate als Alternativen -
</object>
</object>
</object>

In Zukunft geht das dann analog mit HTML5 audio, sollte das mal
vom Stadium eines Arbeitsentwurfes zu einer Empfehlung werden -
die aktuelle Notation kann man da direkt im Arbeitsentwurf
nachlesen (sollte man öfter mal wieder tun, denn Arbeitsentwürfe
können sich prinzipiell täglich ändern), zudem muß bei audio der
Nutzer wohl selber einen Knopf drücken, damit das Gedudel
losgeht - ist also als Alarm/Warnsignal eher nicht so geeignet.

Ich denke, an der SVG-tiny-1.2-Methode bist du nicht so
interessiert, weil das neben Opera derzeit nur spezielle
Darstellungsprogramme für Mobiltelephone interpretieren…

am einfachsten wäre wohl nen Flash Player^^ Das funzt, es gibt viele verschiedene und eben auch “unsichtbare” die sich komplett via Javascript steuern lassen.
Bei Flash weiß man wenigstens was man hat :smiley: [size=85](wobei ichs auch net unbedingt mag… mir wäre es auch lieber wenn es der Browser direkt könnte… nur selbst wenns das gibt, dauert die Verbreitung dank einigen Idioten und nicht zuletzt M$, wobei M$ bei “Idioten” schon einbezogen war, dann doch wieder 10 Jahre^^ Zumindest aber 2)[/size]

soweit möglich empfehle ich ohne flash. ich weiß ich bilde die ausnahme, aber ich zum beispiel habe flash nicht installiert. zuletzt sollte man an iOS-user denken… (also ich nich, die gehn mir am a*** vorbei, aber vielleicht intressiert dich das ja…)

flash kann man ja problemlos auch als Alternative etwa im innersten
object notieren, dann wird das verwendet, wenn alle anderen
Formate nicht interpretierbar sind, flash aber schon.
Das ist eben schön bei object (was auch ähnlich für HTML5 audio
und video realisiert ist), man kann beliebig viele Alternativen
verschachteln. Besonders gut bei object und den viel allgemeineren
Ansätzen von SMIL und SVG tiny 1.2 ist, daß man sogar ganz andere
Inhalte als Alternativen anbieten kann, statt Ton also etwa eine rote
(blinkende) Fläche für den Fall, daß gar kein Ton verfügbar ist. In der
Hinsicht sind HTML5 audio und video wieder schlecht konzipiert und
hinsichtlich der Zugänglichkeit unzureichend gegenüber dem alten
object. Laut HTML5-Arbeitsentwurf soll die Alternative im
referenzierten Dokument vorhanden sein - das funktioniert
natürlich am besten und einfachsten, wenn man ein SMIL- oder
SVG-tiny-1.2-Dokument referenziert. Das sind aber wiederum
Formate, die nicht für audio und video gedacht sind, weswegen
man dann besser wieder object verwendet, wodurch sich audio
und video in HTML5 im Grunde selbst überflüssig machen ;o)

flash ist in dem Sinne immer nur eine Alternative, die man neben
den anderen notieren kann, nichts, was eine zugängliche, gute
Konstruktion ernsthaft ersetzen kann.