2016-03-29 3 views
0

ich mich gefragt, ob jemand ein ähnliches Problem gehabt hat:Audio aufhört zu spielen während der Bewegung montieren zu Rückfall Icecast mit

Ich habe Halterungen in Icecast2 definiert Rückfall, so dass ein Hauptstrom spielt zu allen Zeiten. Wenn ein anderer Fallback-Mount aktiv wird, wird letzterer aktiv. Ich habe die Streams (mp3-Format) getestet, mit ffplay und der Übergang passiert ohne Probleme. Das Problem besteht, wenn ich ein html5 Audio-Tag verwende, um das Audio zu hören: Übergang passiert nicht automatisch und ich muss den Browser neu laden und auf Play klicken, um den Stream zu hören. Das heißt, mit dem Browser, wenn der Fallback-Stream aktiviert wird, stoppt der Sound und ich muss den Browser neu laden und auf Wiedergabe klicken, um [zu dem anderen Stream] zu hören. Die gleichen Probleme treten in allen gängigen Browsern auf.

Hier ist ein Auszug aus meinem icecast.xml:

<mount> 
    <public>0</public> 
    <mount-name>/stream</mount-name> 
    <hidden>0</hidden> 
</mount> 

<mount> 
    <public>0</public> 
    <mount-name>/stream1</mount-name> 
    <fallback-mount>/stream</fallback-mount> 
    <fallback-override>1</fallback-override> 
    <username>stream1</username> 
    <password>pass</password> 
    <hidden>0</hidden> 
</mount> 

Dies ist, was zeigt ffplay bei der Verbindung und von der sekundären Quelle zu lösen:

enter image description here

Der html5 Code, der die Audio-spielt ist wie folgt:

<audio controls> 
    <source src="http://127.0.0.1:3333/stream1" type="audio/mpeg"> 
</audio> 
+0

So streamen Sie MP3 und es wieder in einem

+0

Ja, ich streame mit ezstream zum Base Mount Point mp3 und mit Mixxx zum zweiten Mount Point. Um die Dinge einfach zu machen, streame ich die gleiche Datei (gleiche Bitrate, etc). Mein Szenario ist wie folgt: Ich streame ständig mit ezstream zum Haupt-Mount-Punkt und verbinde mich mit dem zweiten Mount mit Mixx. Ich habe d –

+0

Sie haben diese Frage mit JavaScript und HTML5 markiert, aber ich sehe keinen Code in diesen Sprachen in Ihrer Frage. Können Sie ein beliebiges JavaScript/HTML-Markup hinzufügen, das Sie haben? – TylerH

Antwort

2

Ich habe das endlich funktioniert, indem ich wie folgt ging:

Zuerst bemerkte ich, dass wenn ich von einem Einhängepunkt zu einem anderen wechselte, indem die Quelle aktiviert wurde, der Ton zu spielen aufhörte. Ich habe einen Timer eingerichtet, der alle 1 Sekunde auslöst, um audio.currentTime zu überprüfen und mit einem vorherigen Wert zu vergleichen. Wenn das Ergebnis wahr ist, setze ich die Audioquelle auf denselben Stream zurück. Es ist eine Art Hack, aber es scheint den Trick zu lösen.

HTML-Code:

<audio id="audio" controls> 
     <source src="http://127.0.0.1:3333/stream1" type="audio/mp3"> 
    </audio> 

Javascript-Code:

var audio = document.getElementById('audio'); 
var myVar = setInterval(myTimer, 1000); 
var oldTime = ""; 

function myTimer() { 
    if ((audio.paused != true && (audio.currentTime - oldTime) == 0)) { 
    audio.src=""; 
    audio.src="http://127.0.0.1:3333/stream1"; 
    audio.play(); 
    } 
    oldTime = audio.currentTime; 
}; 
+0

Gleiches Problem hier, aber nur in Firefox, sowohl in Windows als auch in Linux. Es scheint, Chrome hat es in der Zwischenzeit behoben. Dein Hack ist sehr elegant. Wir müssen es anwenden, bis die Browser aufholen. Vielen Dank, dass Sie diese Antwort gepostet haben. –

Verwandte Themen