PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : hintergrundmusik


The One
08.12.2006, 15:15:34
hallo,
ich möchte auf meine homepage hintergrundmusik laufen lassen. aber wenn man dann auf einen link klickt fängt die musik von vorne an, das will ich nicht. deswegen habe ich frames erstellt in einem läuft die musik im anderen ist die eigentliche homepage.
Nun ist mir klar das es durchaus vorkommt das einige leute durch diese musik genervt sind und deswegen möchte ich einen link setzen mit welchem man die musik abstellen kann. dieser soll auf der 'eigentlichen' homepage sein also nicht in dem frame wo die musik läuft.
so jetzt das problem:
es ist möglich die musik abzustellen aber leider gelingt es mir nicht das man die musik wieder einschalten kann...
wie stelle ich das am besten an?

hier meine bisheriger code:

index.php
<frameset rows="*,50">
<frame src="index2.php" name="index" noresize frameborder="0">
<frame src="music.php" name="music" scrolling="no">
<noframes>
<p>Es können keine Frames angezeigt werden!.</p>
</noframes>
</frameset>

index2.php
...
<? $action = $_GET['action'];
echo "<a href=\"?action=$action&soundswitch=1\" target=\"music\">SOUND ON/OFF</a>";
?>
...

music.php
<?
$sound = $_GET['sound'];
if(empty($sound)){
$sound = 1;
}

$soundswitch = $_GET['soundswitch'];
if($soundswitch == 1){
if($sound == 1){ $sound = 0; }
if($sound == 0){ $sound = 1; }
}

if($sound == 1)
{
echo "$sound<br>$soundswitch";
?>
<bgsound src="track.mp3" loop="infinite">
<?
}
?>

in index.php sind die frame definiert
in music.php wird die musik abgespielt
in index2.php befindet sich die eigentliche homepage

Wo liegt der Fehler?

danke im vorraus

BenniG.
08.12.2006, 15:21:48
Scherzkeks:

if($soundswitch == 1){
if($sound == 1){ $sound = 0; }
if($sound == 0){ $sound = 1; }
}

Du spielst ein bisschen mit den Variablen rum, machst aber im endeffekt immer sound=1

if($soundswitch == 1){
if($sound == 1){
$sound = 0;
} else {
$sound = 1;
}
}

The One
08.12.2006, 18:24:07
loooooooooool bin ich blöd^^
hmm aber es klappt leider immer noch nicht so wie es sein sollte =(

und zwar folgendes problem:
zuerst wird ganz normal in einem frame die homepage angezeigt und im anderen frame die musik abgespielt. klicke ich auf music off dann wird plätzlich im musik frame die homepage angezeigt (also wird sie dann 2 mal angezeigt) dadurch wird logischerweise auch nichtmehr die musik abgespielt...
was muss ich machen?

BenniG.
08.12.2006, 18:26:54
naja, den code zum musik stoppen musst du in dem script integrieren dass die musik abspielt.. und speicher den status am besten in einer session-variable.. dann kannst du die Musik auch wieder aktivieren..

The One
11.12.2006, 12:56:57
ich versteh es nicht richtig...
es klappt nicht. Könnt ihr mir evtl. ein code beispiel geben?

BenniG.
11.12.2006, 13:06:32
UNGETESTET:

<?php
session_start();
$soundswitch = isset($_GET['soundswitch'])?$_GET['soundswitch']:0;

if (isset($_SESSION['sound'])) {
$sound=$_SESSION['sound'];
} else {
$sound=1;
}
if($soundswitch == 1){
if($sound == 1){
$sound = 0;
} else {
$sound = 1;
}
}
$_SESSION['sound'] = $sound;
if ($sound==1) {
//ausgabe um sound abzuspielen
echo "sound on";
} else {
echo "sound off";
}
?>

Fertig..

Domi
11.12.2006, 14:26:17
if($sound == 1){ $sound = 0; }
if($sound == 0){ $sound = 1; }


gibts hier auch sowas wie:

$sound = !$sound;

also das er einfach den Inhalt invertiert? Bei Assembler ist es ja möglich mit mov a, /a oder so..

Gruss
Domi

BenniG.
11.12.2006, 14:30:19
Joa, im prinzip lässt sich da auch mit boolean-werten arbeiten, dann hat mans kürzer..

<?php
session_start();
$soundswitch = isset($_GET['soundswitch'])?$_GET['soundswitch']:0;

if (isset($_SESSION['sound'])) {
$sound=$_SESSION['sound'];
} else {
$sound=true;
}
if($soundswitch == 1){
$sound= !$sound;
}

$_SESSION['sound'] = $sound;
if ($sound) {
//ausgabe um sound abzuspielen
echo "sound on";
} else {
echo "sound off";
}
?>

meikel (†)
11.12.2006, 16:55:45
Aus dem Handbuch:
$a xor $b | Entweder Oder | TRUE wenn entweder $a oder $b TRUE ist, aber nicht beide.

if (! isset($_SESSION['sound']))
$_SESSION['sound'] = false;

if (isset($_POST['soundswitch']))
$_SESSION['sound'] = $_POST['soundswitch'] XOR $_SESSION['sound'];

The One
12.12.2006, 14:46:00
benniG. hat wunderbar geklappt! danke euch allen für die unterstützung