Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: HTML, CSS und PHP Forum - HTML Tutorial. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

cottton

Web-Profi

  • »cottton« ist der Autor dieses Themas

Beiträge: 1 221

Beruf: Student (PHP/MySQL-Datenbankentwickler)

  • Private Nachricht senden

1

Montag, 28. Mai 2012, 20:14

Sounds nacheinander abspielen

Moin,

bin hier gerade am verzweifeln -.-
google ist ja mein freund, wenn ich was nicht weiss. Aber wenn man beiträge findet wie "jetz gehts" aber keiner schreibt warum ... -.-

Also mein problem ist - ich habe einige wav files die ich nacheinander auf der website abspielen möchte.
die waves sind unterschiedlich lang (unter 1 sec) und sollen direkt nacheinander abgespielt werden.
Vom sinn her wie bei einem NAVI, bei dem die einzellnen stimm-teile aneinandergereiht werden.

Ich bin soweit, dass ich mir mit php sehr einfach die wortlaute zusammen setze.

PHP-Quelltext

1
2
3
$play_sound[1]['sound'] = '<embed src="' $path_Sounds '1.wav" autostart=true width="1" height="1">';
$play_sound[2]['sound'] = '<embed src="' $path_Sounds '2.wav" autostart=true width="1" height="1">';
...

Aufgerufen hab ich es bis jetzt mit dann mit einem einfachem

PHP-Quelltext

1
2
3
4
foreach($which_number as $say_number) 
{
echo $play_sound[$say_number]['sound'];
}

Das problem ist nun, dass die sounds gleichzeitig abgespielt werden.
Hatte eine pause mit javascript eingebaut, allerdings "lagt" es - spielt die sounds manchmal nacheinander ab, manchmal fast zugleich.
Dachte auch schon daran die filesize zu lesen, geteilt durch 1024 *10 und dies als pause zu nutzen. Funktioniert aber auch nicht.

Was ich dann gefunden habe war das:

Javascript-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sound = new Array();
          sound[0] = "1.mp3";
      sound[1] = "2.mp3";
      sound[2] = "3.mp3";
      counter = 0;
      var my_sound:Sound = new Sound();
      my_sound.loadSound(sound[counter], true);
      counter++;      
      my_sound.onSoundComplete = function() {
      if(counter<sound.length){
      my_sound.loadSound(sound[counter], true);
      counter++;
      }
      }

von dieser website: http://www.flashforum.de/forum/actionscr…len-214915.html

Allerdings verstehe ich JS nicht und es scheint dieses script funktioniert nicht.


Brauch da echt hilfe =)
Wenn möglich mit dem ganzen script, damit ich sehe, was in JS da passiert.
Danke!

2

Dienstag, 29. Mai 2012, 13:47

Hallo cottton,

der Code von http://www.flashforum.de/forum/actionscr…len-214915.html ist Actionscript, kein Javascript. (Actionscript ist die Scriptsprache von Flash.)
Wenn du das Script ausprobieren willst bekommst du hier eine Testversion von Flash, ist aber echt nicht ganz einfach: http://www.adobe.com/de/downloads/

Mit JS müsste das eigentlich auch gehen, allerdings hängt da wahrscheinlich viel von der Performance des Rechners ab. :(

LG
Conny

cottton

Web-Profi

  • »cottton« ist der Autor dieses Themas

Beiträge: 1 221

Beruf: Student (PHP/MySQL-Datenbankentwickler)

  • Private Nachricht senden

3

Dienstag, 29. Mai 2012, 16:26

so, bin jetzt einen anderen weg gegangen, brauch allerdings immernoch hilfe.

Ich nutze nun windows media player.
Ich speichere die .wav´s in einer .wpl datei als playlist.
Dann rufe ich die playlist ab.

abc.wpl sieht dann so aus:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?wpl version="1.0"?>
<smil>
    <head>
        <meta name="Generator" content="Microsoft Windows Media Player -- 12.0.7601.17514"/>
        <meta name="ItemCount" content="1"/>
        <meta name="IsFavorite"/>
        <meta name="ContentPartnerListID"/>
        <meta name="ContentPartnerNameType"/>
        <meta name="ContentPartnerName"/>
        <meta name="Subtitle"/>
        <author/>
        <title>say</title>
    </head>
    <body>
        <seq>
            <media src="C:/pfad/fpad/Sounds/40.wav"/>
            <media src="C:/pfad/fpad/Sounds/2.wav"/>
...
        </seq>
    </body>
</smil>

aufruf dann mit:

HTML

1
2
3
<embed type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
name="mediaplayer1" ShowStatusBar="true" EnableContextMenu="false" autostart="true" width="320" height="240" loop="false" src="pfad/xspf.wpl" >


Jetzt hab ich nur ein einziges problem: Die playlist wird einmal geladen, und dann warscheinlich nicht mehr.
Es kommt immer der inhalt des ersten durchgangs. =/

jemand eine idee, wie ich da ein "reset" machen kann?


EDIT:
and another try ...

Versuch mich jetzt an dem hier:
http://forestmist.org/2010/04/html5-audio-loops/

Falls jemand den code schreiben kann, wie ich meine wav´s da nacheinander abspielen kann - wäre sehr dankebar.
Sitz da schon wieder ne halbe stunde dran -.-

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cottton« (30. Mai 2012, 13:00)


4

Mittwoch, 30. Mai 2012, 12:33

Lieber cottton,

ich bitte dich, noch einmal die Nutzungsbedingungen dieses Forums zu lesen. Dort steht klar geschrieben:

Zitat

möchtest du nur etwas an einen vorherigen Beitrag, auf den noch niemand geantwortet hat hinzufügen, so ändere bitte einfach deinen Beitrag davor ab, um Doppelposts zu vermeiden.

Zitat

der Sinn des Forums ist es nicht, dass du für deine Probleme vollständige, funktionierende Codes geliefert bekommst.


Ich bitte dich, dich in Zukunft daran zu halten. Diese Regeln kommen nicht von ungefähr desweiteren hast du sie bei deiner Registrierung ausdrücklich bestätigt, also halte dich bitte auch entsprechend daran, wenn du dieses Forum benutzt.

Und jetzt noch was von meiner persönlichen Meinung:
eine halbe Stunde ist NICHTS wenn man an einem Code arbeitet. Das dauert halt, speziell wenn es sich um ein Thema handelt was einem neu ist. Ich bezweifle, dass dir ein Forenmitglied in wesentlich kürzerer Zeit einen Code schreiben könnte, wenn der oder diejenige sich vorher noch nie mit diesem Thema beschäftigt hat. Also bitte schreibe deine Codes doch selbst. Wir im Forum geben Denkanstöße, um dir weiterzuhelfen, aber keine vollständigen Lösungen.
Support per PN NUR für spezielle individuelle Fragen zur Benutzung des Boards, alle anderen Fragen bitte ins Forum!

cottton

Web-Profi

  • »cottton« ist der Autor dieses Themas

Beiträge: 1 221

Beruf: Student (PHP/MySQL-Datenbankentwickler)

  • Private Nachricht senden

5

Mittwoch, 30. Mai 2012, 12:43

Ist mir doch klar, aber ich denke du verstehst, dass ich bisschen "aufgebracht" (glaube nicht das richtige wort) war/bin.

Im ganzen web findet man threads. Aber wenn jemand die lösung hatte, kam von dem nur ein "geht jetzt" o.ä. -.-


Ich weiss mitlerweile, dass es entweder mit <enbed ... + .wpl funktioniert (allerdings lädt es die wpl nur einmal. Bei jedem refresh der page kommt der inhalt des ersten ladens),
oder mit HTML5 <audio>.

Da ich HTML5 <audio> genial (einfach) finde, bin ich jetzt daran hängen geblieben.
Ich hoffe du nimmst es mir auch nicht übel, dass ich ein neuen thread in andere sction geöffnet habe.
Das hab ich gemacht, weil es ja nun um HTML5 geht.
Und damit, falls jemand auch mal eine lösung sucht, es zu finden ist hier der link: HTML5 und <audio> aber mit playlist?

6

Mittwoch, 30. Mai 2012, 12:48

Es ist mir egal, ob du "aufgebracht" (btw was kann da DIESES Forum für?) oder sonst was bist: Es gibt hier Regeln und an die muss man sich halten, wenn man in diesem Forum posten möchte. Punkt aus.

Und einen neuen Thread brauchst du auch nicht (den habe ich übrigens gelöscht), es reicht EINER. Wenn du meinst, dass das Thema nicht mehr in diesen Bereich passt kannst du mir eine PN schreiben oder es an einen deiner Beiträge anfügen und um Verschieben des Themas in den korrekten Bereich bitten. Aber bitte nicht das Forum mit zigmal dem gleichen Thread zumüllen.
Support per PN NUR für spezielle individuelle Fragen zur Benutzung des Boards, alle anderen Fragen bitte ins Forum!

cottton

Web-Profi

  • »cottton« ist der Autor dieses Themas

Beiträge: 1 221

Beruf: Student (PHP/MySQL-Datenbankentwickler)

  • Private Nachricht senden

7

Mittwoch, 30. Mai 2012, 12:56

gerade wollt ich auf deine pm antworten und sehe, dass wir schon wieder "über kreuz" schreiben.
Also ... was ich schreiben wollte:

"
ich glaube wie posten die ganze zeit aneinander "vorbei" =)

wärend du in meinem 1sten thread geposted hast, hatte ich den enuen thread erstellt.
dann sah ich deinen neuen post, und hab darauf geantwortet (ich will nicht pushen! die begründung hab ich ja mit reingeschrieben)
und wäred dessen schreibst du mir die pm ;D


Also nochmal - ich bin kein troll, pusher, oder was auch immer.
Ich poste manchmal etwas mehr, dann auch in einer neuen antwort (double post) aber der übersicht wegen.
"

Warum löscht du denn den anderen thread jetzt?

Frage - macht es noch sinn hier über diese thema weiter zu schreiben? (geht jetzt mitlerweile um HTML5 und <audio> )

8

Mittwoch, 30. Mai 2012, 13:00

Und einen neuen Thread brauchst du auch nicht (den habe ich übrigens gelöscht), es reicht EINER. Wenn du meinst, dass das Thema nicht mehr in diesen Bereich passt kannst du mir eine PN schreiben oder es an einen deiner Beiträge anfügen und um Verschieben des Themas in den korrekten Bereich bitten. Aber bitte nicht das Forum mit zigmal dem gleichen Thread zumüllen.
Support per PN NUR für spezielle individuelle Fragen zur Benutzung des Boards, alle anderen Fragen bitte ins Forum!

Basiii

Wachhund

Beiträge: 1 655

Wohnort: Schleswig Holstein

Beruf: Freiberuflich

  • Private Nachricht senden

9

Mittwoch, 30. Mai 2012, 13:02

Selbst wenn du kein Troll, Pusher oder sonst eine Gottheit bist, du hast folgenden Absatz (gelesen) und akzeptiert:

Zitat

möchtest du nur etwas an einen vorherigen Beitrag, auf den noch niemand geantwortet hat hinzufügen, so ändere bitte einfach deinen Beitrag davor ab, um Doppelposts zu vermeiden. Dies gilt auch, wenn der vorherige Beitrag schon eine Weile zurück liegt. Posts um Threads zu pushen in der Art von "weiß denn dazu niemand etwas??" oder "schaut hier noch jemand rein" sind nicht erlaubt. Solltest du mehrere Teile eines Beitrags inhaltlich voneinander trennen wollen, so mache dies doch bitte durch eine Trennlinie oder kleine Überschriften deutlich, anstatt mehrere Beiträge zu erstellen.


Lies mal meine Signatur:
Du hast Fragen zum Board, Kritik, Lob, Anregungen oder dich stört etwas? Einfach eine private Nachricht senden.
<(o.o)> I always know what I du!

cottton

Web-Profi

  • »cottton« ist der Autor dieses Themas

Beiträge: 1 221

Beruf: Student (PHP/MySQL-Datenbankentwickler)

  • Private Nachricht senden

10

Mittwoch, 30. Mai 2012, 13:10

Kommt doch mal runter=)
Ich versteh euch doch, aber jetzt ist durch diese diskusion doch das ganze thema aus dem ruder.
Ich weiss, wie "nervig" es ist, wenn jemand über google auf (zb) diese seite kommt, die lösung sucht, und dann solche "brüche" im thema sind.

Ich poste jetz lieber nix mehr. Alles zu verwirrend und ihr denkt am ende noch sonstwas von mir.

Um das ganze aber nochmal zusammen zu fassen:

<embed ... ist wohl ungeeignet.
auch der versuch mit der window media playlist (.wpl) funktioniert nicht.

HTML5 <audio> scheint mir am sinvollsten, da es in jedem browser funktioniert (wenn man src beachtet ...) , aber ich habe noch keine lösung gefuden, mehrere sounds nacheinander im gleichen player abzuspielen.


Fortschritt ! ;D
addEventListener "'ended'" funktioniert:

Javascript-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    var audioElement = document.createElement('audio');
    audioElement.setAttribute('src', '1.wav');
    audioElement.play();

    audioElement.addEventListener('ended', function(e) {

        var audioElement2 = document.createElement('audio');
        audioElement2.setAttribute('src', '2.wav');
        audioElement2.play();

        audioElement2.addEventListener('ended', function(e) {

            var audioElement3 = document.createElement('audio');
            audioElement3.setAttribute('src', '3.wav');
            audioElement3.play();

        }, false);

    }, false);


Nur wie bekomme ich jetzt die gebrauchten waves in JS ?
Über PHP habe ich ein Array mit allen waves die beim jeweiligen durchgang gebraucht werden.
Ist es möglich diese in JS in eine (wie bei PHP) foreach schleife zu packen?



solution and working code:
(create those wavs in same folder of curse)
Lösung und funktionierender code:
(erstellt diese wavs im gleichen ordern, logisch=)

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
$words[1] = '11.wav';
$words[2] = '13.wav';
$words[3] = '2.wav';
$words[4] = '10.wav';

?>
<audio id="player_id" controls="controls">
Your browser does not support the audio element.
</audio>

<script language="javascript" type="text/javascript">
<?
$act '.play();';
$c 1;
$n count($words);
foreach($words as $key => $word)
{
    $audioElement '
    var audioElement' $c ' = document.getElementById("player_id");
        audioElement' $c '.setAttribute("src", "' $words[$key] . '");
        audioElement' $c ;

    $addEventListener_open '
        audioElement' $c '.addEventListener("ended", function(e) {
    ';
    $addEventListener_close '
    }, false);
    ';

    $c_next $c+1$key_next $key+1;
    if($c_next $n)
    {
        $audioElement_next '
    var audioElement' $c_next ' = document.getElementById("player_id");
        audioElement' $c_next '.setAttribute("src", "' $words[$key_next] . '");
        audioElement' $c_next ;

    }
    elseif($key_next <= $n)
    {
        $audioElement_next '
    var audioElement' $c_next ' = document.getElementById("player_id");
        audioElement' $c_next '.setAttribute("src", "' $words[$key_next] . '");
        audioElement' $c_next ;

    }

    if($c == 1)
    {
        echo $audioElement $act $addEventListener_open $audioElement_next $act;
    }
    elseif($c != $n)
    {
        echo $addEventListener_open $audioElement_next $act;
    }

    $c++;
}
echo $addEventListener_open $audioElement_next '.stop();' '}, false);';

for($y 1$y $n$y++)
{
    echo '}, false);';
}
?>
</script>
<?

Working with .wav in / Funktioniert mit .wav in:

(image and info taken from http://www.homepage-baukasten.de/forum/viewtopic.php?t=49173)


Bin ich froh! Das hat nerven gekostet.
Um es nun noch im IE abspielen zu können, müsste man es auf .wav und .mp3 umschreiben.
Übrigens - der "Spass" in zeile 59 - hat jemand eine idee, wie man das playback nach dem letzen "play" stoppen kann? Ohne der zeile wäre der letzte sound nämlich ein loop =)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »cottton« (30. Mai 2012, 16:31)


Ähnliche Themen