PHP Session - Sound seitenübergreifend abspielen

11/27/2012 14:39 UserIsGrateful#1
Hallo Community und Interessierte :) ,



ich benötige Bitte Hilfe. Es geht mir darum, per PHP Session eine Sounddatei (in *.mp3 und *.ogg verfügbar) seitenübergreifend abspielen zu lassen.


A. Kein Ajax!
Soll heißen, dass ich kein Ajax verwenden möchte und zudem den Content ebenfalls nicht so laden möchte!

B. Kein (i)Frame(s)!
Ebenfalls soll die Variante mit (i)Frame(s) nicht benutzt werden, denn dies halte ich einfach für unschön und nicht mehr zeitgemäß. Eher noch Ajax, doch der Seitenumbau würde dies nicht rechtfertigen!

C. Zudem nicht über Popup-Fenster!
Eine Kombination aus Popup-Fenstern und Flashmedia, sprich' Flashaudiofiles ist genauso unschön und kommt für mich nicht in Frage!


Ja ich weiß, wenn ich schon gleich einiges ausschließe, wird die Beantwortung um einiges schwieriger doch somit auch genauer denke ich. Vorgestellt habe ích mir, dass ich folgenden HTML5 / PHP <audio> tag verwenden möchte:
PHP Code:
function sound() {
   echo 
"<audio autoplay='autoplay' loop='loop'>
            <source src='media/sound.mp3' type='audio/mp3' /><source src='media/sound.ogg' type='audio/ogg' />
         </audio>"
;

Somit diesen Abschnitt in eine PHP Session verpacke und per session_start(); den Soundtrack AN DER RICHTIGEN STELLE IM LIED (also nicht immer erneut von vorn startend) aufrufe.


1. Wie registriere ich die Funktion sound() richtig in der Session?
Also sicherlich nicht einfach nur so oder:
PHP Code:
// Wobei statt "sound()" die hart reingeschriebene Variante des <audio> tags möglich wäre.
if (!isset($_SESSION['val'])) {
   
$_SESSION['val'] = "sound()";
}
// Oder: $_SESSION['val'] = "<audio autoplay='autoplay' loop='loop'><source src='media/sound.mp3' type='audio/mp3' /><source src='media/sound.ogg' type='audio/ogg' /></audio>"; 
2. Wenn es richtig registriert ist, wie schaffe ich es, dass das Lied an der Stelle wieder abspielend aufzugreifen wird, wenn ich die Seite wechsel?
Also seitenübergreifendes Abspielen umsetzen!?


Es sei dazu gesagt, dass ich noch nicht soviel Erfahrungen im Umgang mit Sessions und Cookies habe, doch grundlegend ist mir klar was ich da mache ;) . Trotzdem bin ich für jeden Hinweis zu diesem Sessionvorhaben dankbar und / oder eine sinnvolle, beispielhafte Einweisung im Gebrauch von Sessions wäre toll.

Jedenfalls geht's mir grundsätzlich um die zwei Fragen und ich bin sehr gespannt, was in dieser Community steckt, da ich in anderen Foren und mit dem allgemeinen Suchwerkzeug GOOGLE nichts passendes für mein Anliegen oder vergleichbares gefunden habe!


Danke für jegliches konstruktives feedback, eure Hinweise, Tipps und Ideen :) .
11/27/2012 15:21 boxxiebabee#2
Das wird so nicht möglich sein. Du brauchst Ajax.
Bevor man auf eine andere Seite geht, musst du eine Datei über Ajax aufrufen, wo du die aktuelle Position übergibst, und dies dann in die Session speicherst.
Wie du die aktuelle Position herausfindest, und dort wieder abspielst musst du googlen, das weiß ich so jetzt nicht, noch nie gebraucht ;)

Außerdem sollte man anmerken das zwischen den Seitenwechsel kurz keine Musik spielen wird, da die Seite erst geladen werden muss.
11/27/2012 15:26 xExtension#3
Gibt eis eine Möglichkeit dass man die Musik auch beim laden eines content weiter gespielt werden kann ich meine damit dass nur eine besimmte HTML Klasse neu geladen wird und Header / Footer statisch bleiben ?
11/27/2012 15:46 boxxiebabee#4
Quote:
Originally Posted by xExtension View Post
Gibt eis eine Möglichkeit dass man die Musik auch beim laden eines content weiter gespielt werden kann ich meine damit dass nur eine besimmte HTML Klasse neu geladen wird und Header / Footer statisch bleiben ?
Mit Ajax den Content dynamisch laden, und dann austauschen.
11/27/2012 16:39 xExtension#5
Quote:
Originally Posted by boxxiebabee View Post
Mit Ajax den Content dynamisch laden, und dann austauschen.
Ich kenne nur

PHP Code:
     onclick="event.preventDefault(); $('#DIVNAME').load('PATHZURPHP');" 
und das ist mit sicherheit kein ajax gibt es dafür ein online datenbank wie PHP.net ?
11/27/2012 16:54 boxxiebabee#6
Quote:
Originally Posted by xExtension View Post
Ich kenne nur

PHP Code:
     onclick="event.preventDefault(); $('#DIVNAME').load('PATHZURPHP');" 
und das ist mit sicherheit kein ajax gibt es dafür ein online datenbank wie PHP.net ?
Das ist Ajax. :facepalm:
11/27/2012 17:59 kissein#7
Speichere in ein Cookie/Session die aktuelle Position und dann die currentime aufn die Cookie/Session-wert setzen.

das könnte interessant sein ;)
[Only registered and activated users can see links. Click Here To Register...]

oder halt die elegante variante mit ajax den content laden und mit html5 api die URL ohne neuladen manipulieren, twitter-like.
[Only registered and activated users can see links. Click Here To Register...]
11/27/2012 18:15 UserIsGrateful#8
@boxxiebabee


Vielen Dank für dein feedback!
Das beim Seitenwechsel kurz kein Sound abgespielt wird, da der Seitenaufbau geladen werden muss, ist mir vollkommen klar.

Quote:
boxxiebabee
Bevor man auf eine andere Seite geht, musst du eine Datei über Ajax aufrufen, wo du die aktuelle Position übergibst, und dies dann in die Session speicherst.
Wie dir sicherlich nicht entgangen ist, ist Ajax eigentlich ein Ausschlusskriterium, wie ich eingangs erwähnte. Doch genau dein Zitat bzw. das Verständnis dafür (was ich aus dem post schließe) ist der Knackpunkt! Etwaiges finde ich nicht über GOOGLE (wie ich bereits schrieb).

1. Die aktuelle Position herausfinden?
2. Hast du noch eine Antwort bezüglich meiner ersten Frage - richtiges registrieren in die Session?
3. Wieso benötige ich Ajax für die Positionsübergabe in die Session? Könntest du dies erläutern bitte. Ist mir nicht klar warum ich dies nicht einfach direkt in der bspw. index.php in der Session direkt ablegen kann?!


@xExtension


boxxiebabee liegt da nicht falsch. Mittels Ajax lässt sich der Content recht einfach laden. Dazu kannst du dich bei der Dokumentation von jQuery recht einfach einlesen und schnell Fuß fassen.

Eine der einfachsten Methoden wäre .load() des framework.
[Only registered and activated users can see links. Click Here To Register...]


Viel Erfolg beim testen :) .


@kissein


Danke auch dir für dein feedback!
Die URLs sehen vielversprechend aus und ich schau mal, was ich damit so anfangen kann. Danke, ich melde mich sicherlich mit weiteren Fragen oder sogar mit einem Erfolgspost, wenn es so sein sollte!


Weitere Antworten, Hinweise etc. sind erwünscht ~ Danke!
11/27/2012 18:24 マルコ#9
1. [Only registered and activated users can see links. Click Here To Register...] (2 Sekunden Google)
2. In der Session wird nix registriert. Vor allem keine Funktionen. Eine Session ist quasi ein Array. Da kannst du Werte drin speichern - zum Beispiel die aktuelle Position.
3. Ich finde, man braucht keine Session. Und kein AJAX. Alles, was man tun muss, ist beim drücken eines Links per GET oder POST Parameter die aktuelle Position zu übergeben. Und dann nach dem Laden einfach mit JS die Initialposition setzen:
[Only registered and activated users can see links. Click Here To Register...]
11/27/2012 18:27 NotEnoughForYou#10
Quote:
2. Hast du noch eine Antwort bezüglich meiner ersten Frage - richtiges registrieren in die Session?
Normalerweise speichert man keine Funktion in einer Session (würde so auch nicht gehen). Man kann/sollte lediglich den Abspielmoment in der Session speichern.

Quote:
Wieso benötige ich Ajax für die Positionsübergabe in die Session? Könntest du dies erläutern bitte. Ist mir nicht klar warum ich dies nicht einfach direkt in der bspw. index.php in der Session direkt ablegen kann?!
Weil die Musik ja noch immer läuft wenn die index.php geladen ist. Dh., dass die Session dann nur den Abspielpunkt hätte wenn die Funktion aufgerufen worden wäre, nicht aber den Punkt an dem man die Seite wieder verlässt. Dafür braucht man dann Ajax, damit beim verlassen der Seite der aktuelle Abspielpunkt übergeben werden kann.

Leider weiss ich momentan auch nicht aus dem FF ob es möglich ist ein Lied ab einer bestimmten Stelle abzuspielen.

#Edit: マルコ war schneller :P
11/27/2012 18:29 UserIsGrateful#11
@マルコ


Wow, hier scheinen wahrlich PROs in der Community zu stecken, Wahnsinn ... danke für die schnellen Antworten. Wie bereits erwähnt, ich melde mich mit neuen Infos, wenn ich alles umsetzen konnte.

Danke :) .


@NotEnoughForYou

Quote:
#Edit: マルコ war schneller :P
Stimmt, doch danke dir trotzdem ~ auch schon allein für die Erklärung ~ leuchtet ein :) .
11/27/2012 18:50 xExtension#12
Quote:
Originally Posted by boxxiebabee View Post
Das ist Ajax. :facepalm:
Gut dann bin ich um eine Erfahrung reicher xD