Übergabe Dateinummer der Audio im Link/Text an Arrey oder Variable für Wiedergabe der Audiodatei

romacasa

Grünschnabel
Ahhhh, ok. Wenn ich auf PHP.de lese, ist mir aufgefallen, dass die Beispiele nicht immer ganz eindeutig sind. Ein Beispiel verwendete $codes einmal als array und ein andermal - im selbigen code -als string. Macht es nicht ganz einfach, durchzusehen. Danke. der Info.

Inhalt von inh.txt im Beitrag davor gepostet....
 

Sempervivum

Erfahrenes Mitglied
Ich würde da ja gleich Nägel mit Köpfen machen und auf eine zeitgemäßere Lösung setzen, entweder mit einem Modal, wie Du ein deinem Eingangsposting geschrieben hattest oder mit einer Playlist, was eine gängige Lösung ist. Mit Modal würde eine Basisversion so aussehen:
Code:
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
include '_thread-tenses/connect.php';
?>
<!doctype html>
<html>

<head>
    <title>Audio Playlist</title>
    <style>
        figure {
            display:none;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            margin: 0;
        }

        audio {
            outline: none;
        }
    </style>
</head>

<body>
<?php
$files = glob('audio/*.mp3');
foreach ($files as $file) {
    $name = basename($file, '.mp3');
    echo '<button value="' . $file . '">' . $name . '</button>';
}
?>
<figure>
    <audio controls></audio>
    <figcaption></figcaption>
    <span class="close-btn">Schließen</span>
</figure>
    <script>
        const fig = document.querySelector('figure');
        const aud = document.querySelector('figure audio');
        const figcapt = document.querySelector('figure figcaption');
        document.body.addEventListener('click', event => {
            if (event.target.classList.contains('close-btn')) {
                fig.style.display = 'none';
                aud.pause();
            } else {
                const src = event.target.value,
                    name = event.target.textContent;
                aud.src = src;
                aud.play();
                figcapt.textContent = name;
                fig.style.display = 'inline-block';
            }
        });
    </script>
</body>

</html>
Mit Playlist fast gleich, nur dass der Player immer sichtbar wäre und darunter die Liste der Audiodateien, scrollbar wenn es relativ viele sind wie in deinem Fall.
 
Zuletzt bearbeitet:

romacasa

Grünschnabel
Ich würde da ja gleich Nägel mit Köpfen machen und gleich auf eine zeitgemäßere Lösung setzen, entweder mit einem Modal, wie Du ein deinem Eingangsposting geschrieben hattest oder mit einer Playlist, was eine gängige Lösung ist. Mit Modal würde eine Basisversion so aussehen:
Code:
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
include '_thread-tenses/connect.php';
?>
<!doctype html>
<html>

<head>
    <title>Audio Playlist</title>
    <style>
        figure {
            display:none;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            margin: 0;
        }

        audio {
            outline: none;
        }
    </style>
</head>

<body>
<?php
$files = glob('audio/*.mp3');
foreach ($files as $file) {
    $name = basename($file, '.mp3');
    echo '<button value="' . $file . '">' . $name . '</button>';
}
?>
<figure>
    <audio controls></audio>
    <figcaption></figcaption>
    <span class="close-btn">Schließen</span>
</figure>
    <script>
        const fig = document.querySelector('figure');
        const aud = document.querySelector('figure audio');
        const figcapt = document.querySelector('figure figcaption');
        document.body.addEventListener('click', event => {
            if (event.target.classList.contains('close-btn')) {
                fig.style.display = 'none';
                aud.pause();
            } else {
                const src = event.target.value,
                    name = event.target.textContent;
                aud.src = src;
                aud.play();
                figcapt.textContent = name;
                fig.style.display = 'inline-block';
            }
        });
    </script>
</body>

</html>
Mit Playlist fast gleich, nur dass der Player immer sichtbar wäre und darunter die Liste der Audiodateien, scrollbar wenn es relativ viele sind wie in deinem Fall.
Danke, ich sehe mir diesen Code mal in Funktion an.... Playlist steht in der Ausgangsbeschreibung, warum es nicht geht. Die Suchfunktion der Seite, die Datum, einzelne Wörter des Titels, Kassettennummer Wochentag, Ort und später auch Stichwörter durchsucht, wäre nicht wirklich hilfreich, was zu finden. Zudem soll das ganze nicht mehr Webadministrator-Abhängig sein. Danke des Postes.
 

Sempervivum

Erfahrenes Mitglied
Playlist steht in der Ausgangsbeschreibung, warum es nicht geht.
Du meinst, dass die Audiodateien keine Metadaten haben? Eine Playlist i. w. S. würde die auch nicht brauchen, was Du dir vorstellst, dass man eine Liste mit den Namen bzw. Nummern sieht, könnte man auch als Playlist interpretieren.
 

romacasa

Grünschnabel
Du meinst, dass die Audiodateien keine Metadaten haben? Eine Playlist i. w. S. würde die auch nicht brauchen, was Du dir vorstellst, dass man eine Liste mit den Namen bzw. Nummern sieht, könnte man auch als Playlist interpretieren.
Ja, stimmt. Ich habe derweilen 480 Audiodateien da - und einiges an unbearbeitetes. Die müsste ich alle durcharbeiten, wenn ich sie mit Meta vergeben sollte. Und auch wenn ich Titeln vergeben täte, ist mir dies zu umständlich, da ich eh schon ein Inhaltsverzeichnis habe - siehe Post 10 . Daher versuche ich diese Möglichkeit und interpretiere das Inhaltsverzeichnis als Playlist. Danke.

Habe das Modalskrip angesehen und versuche es mal zu integrieren. Danke.
 

Sempervivum

Erfahrenes Mitglied
Noch eine Anmerkung zu dem Inhaltsverzeichnis. Du schreibst:
Wass ich aber noch möchte ist, dass 1. Wenn im Audio-Verzeichnis eine Datei da ist, die nicht im Inhaltsverzeichnis ist, dass eine Datei erstellt wird, in dieser die Nummer der mp3 notiert wird. Damit weiss der Admin, dass man hier eine Datei hat, die zu ergänzen ist. Ebenso 2. wenn im Inhaltsverzeichnis einen Eintrag steht, der NICHT im Audioverzeichnis ist.
So etwas würde ich offline machen, d. h. ein getrenntes PHP-Skript als Werkzeug für den Admin, das beides, Inhaltsverzeichnis und Ordnerinhalt, vergleicht und die Differenzen anzeigt. Dann brauchst Du nicht den Umweg mit dem Anlegen einer Datei zu gehen.
 

romacasa

Grünschnabel
Noch eine Anmerkung zu dem Inhaltsverzeichnis. Du schreibst:

So etwas würde ich offline machen, d. h. ein getrenntes PHP-Skript als Werkzeug für den Admin, das beides, Inhaltsverzeichnis und Ordnerinhalt, vergleicht und die Differenzen anzeigt. Dann brauchst Du nicht den Umweg mit dem Anlegen einer Datei zu gehen.
Super idee. Danke euch allen.
 

Jan-Frederik Stieler

Monsterator
Moderator
Hi,
Also wenn Du im Array HTML Code drinnen hast würde ich mir Gedanken machen ob du nicht was falsch gemacht hast.
Im Blick auf Layout und Logik zu trennen sollte sowas nicht passieren.
Auch gibts bei mir kein Echo mehr für html.
Da wird das php parsen beendet und nach dem html wieder gestartet.

Grüße
 

Neue Beiträge