Problem bei der Soundausgabe mehrer Winampinstanzen

Hallo,

ich habe Winamp drei mal installiert und die DirectSound-Ausgabe jeweils so konfiguriert das jedes Winamp auf einer seperaten Soundkarte ausgibt. Funktioniert soweit gut, sogar bei gleichzeitigem spielen der Winamps.

Dann habe ich im IP-Symcon v2.0 die Instanzen für jedes winamp angelegt und festgestellt das immer nur auf einer Soundkarte ausgegeben wird. Egal was ich im Winamp konfiguriere, wenn es dann als Dienst läuft „ignoriert“ es die Einstellungen. Hab nun schon alles mögliche an Einstellungen versucht, ich bekomm immer nur die Ausgabe auf einer Karte hin. Hab probeweise mal eine Soundkarte deaktiviert, hatte den gleichen Effekt. Hab Versuchsweise alle Soundtreiber neu installiert, und verschiedene Einstellungen des Standartgeräts in der Systemsteuerung probiert.
Eines der audio-devices ist eine virtuelle Soundkarte für nen wlan player, aber aber auch der funktioniert wenn ich Winamp direkt starte.
Betriebsystem ist Win XP SP3.

Vielleicht hat ja einer eine Idee woran es liegen könnte.

Gruß Georg

Ja, hab ich - wenn es dich tröstet. Es liegt ziemlich sicher am Resourcenmanagement von Windows. Leider wird man da auf die Schnelle nichts machen können. Es sei denn paresy hat grad eine Eingebung…

Wenn paresy keine saubere Lösung in der Hinterhand hat muss ich wohl mit dem CoMedian gas geben. Der sollte aufgrund seiner Multi-Client Struktur keine Probleme machen. :frowning:

Toni

Hallo Toni,
vielen Dank für die schnelle Antwort.
Jetzt weiß ich wenigstens das ich es wohl nicht weiterversuchen brauch,
und werde wohl auf den CoMedian warten müssen.

Gruß Georg

Hallo Toni,

so ganz verstehe ich das Problem mit dem Resourcenmanagement von Windows noch nicht. Ich habe noch IPS V1 im Einsatz, damit laufen auch mehrere Winamps (ich habe für jeden Raum eine eigene Soundkarte und entsprechend ein eigenes Winamp).

Bedeutet das jetzt, unter V2 werden mehrere Winamps niemals laufen?

4Georg: Was in der Systemsteuerung unter Standardsoundkarte angegeben ist, ist eigentlich egal. Unter V1 gehts so: Du musst in Winamp unter Output direkt die Soundkarte einstellen, die benutzt werden soll. Danach beendest Du Winamp, dabei werden die Einstellungen automatisch gespeichert (damit beim nächsten Rechnerstart noch immer die korrekte Soundkarte angesprochen wird). IPS startet dann automatisch das beendete Winamp neu. Das machst Du mit allen Soundkarten und Winamp-Programmen.

Wichtig, Du solltest USB-Soundkarten nicht ständig abziehen und wieder neu anstecken, danach kann wieder einiges verstellt sein.

Ich wünsche einen schönen Abend.

Christoph.

Hallo Christoph,

ich habe es so gemacht wie du beschrieben hast, unter v1 werden die Instanzen auch korrekt angesprochen, ebenso ohne IP-Symcon, nur wenn sie aus v2.0 gestartet werden tritt das Problem auf. In den jeweiligen Winamps ist das output plugin (DirectSound-Plugin) auf die jeweiligen Soundkarten eingestellt. USB Soundkarten verwende ich nicht. Die erste Soundkarte ist onboard, die zweite PCI, und die dritte virtuell (Abit Wlan Music).

Gruß Georg

Das Problem liegt darin begründet, dass IPS jetzt als Dienst läuft und Windows in diesem Fall strengere Regeln anlegt. Das ist begründet darin, dass sich Viren und Trojaner gern als Dienst installiert haben und als solcher Macht über den ganzen Rechner hatten. Das ist nun vorbei. Ein Dienst kann nicht mehr auf User-Resourcen zugreifen. Es ist beispielsweise auch garnicht so einfach eine Messagebox aus einem Dienst heraus zu öffnen weil der Bildschirm für den User reserviert ist. Sound ist das gleiche. Vieles geht, Vieles aber auch nicht.

IPS v1 lief nicht als Dienst sondern wurde vom User gestartet (autostart) damit gehört der Prozess dem User und hat keinerlei Einschränkungen.

Gruß,

Toni

Hallo Toni,

da bin ich jetzt langsam aber doch baff. Wenn IPS V2 Winamp startet, dann benutzt Winamp nicht die gespeicherte Soundkarte, sondern immer die Standardausgabe?

Das ist für mich eine Katastrophe. Wie sieht es denn mit wsh-Scripten aus? Traust Du Dir eine Vorhersage zu? Ich starte beispielsweise das Programm mplayer und sende über die IPS auch entsprechende Tastaturbefehle an das Programm über wsh.

Was ist in V2 aus dem Befehl IPS_Execute geworden? funktioniert das dann auch nicht mehr?

Kann ich die Probleme evtl. umgehen, wenn ich den Dienst nicht unter dem Lokalen Systemkonto starte, sondern unter dem Account unter dem ich normalerweise auch arbeite?

Oder reicht es, wenn ich „Datenaustausch zwischen Dienst und Desktop zuzulassen“ aktiviere? Gibt es etwas zu beachten, baue ich damit neue Sicherheitslücken ein?

Ich wünsche einen schönen Tag.

Christoph.

1.: So einfach kann man das nicht sagen. Ist sicherlich auch vom OS und „äusseren Umständen“ abhängig. Du speicherst ja nicht die Soundkarte sondern den die Nummer der gefundenen Soundkarte. Hast du zwei Soundkarten und wählst die zweite Aus, so wird Winamp immer die Zweite nehmen. Steht dem Dienst über die Systemresourcen keine oder nur Eine, so ist der zweite Eintrag ungültig und es wird der erste ausgewählt - oder keiner… Waveout über die Standardsoundkarte könnte hingegen klappen. DirectSound ist zum Beispiel generell ein Problem unter Vista. Was aber nicht heisst, dass es sonst immer funktionieren muss, aber auch nicht, dass es keine Chance gibt. Frage umformuliert: Musst du mit Problemen rechnen bei Winamp unter IPS2? Ja.

2.: Also IPS_Execute gibt es noch und funktioniert. Allerdings hat ein Dienst keinen Zugriff auf den User-Desktop. Das bedeutet ein Fenster wird mit IPS_Execute auf dem Systemdienst Desktop geöffnet und ist somit unsichtbar für den User. Ausserdem taucht das gestartete Programm im Taskmanager auf - es läuft ja - aber es lässt sich vom user nicht beenden, weil er ja keine Rechte darauf hat. Schließlich wurde es vom Systemdienst gestartet.

3.: Was ist wsh?

Toni

Hallo,

ich habe jetzt den „Datenaustausch zwischen Dienst und Desktop zugelassen“, und es scheint soweit zu funktionieren. Die GUI’s kommen zum Vorschein und in diesen kann ich die Ausgabe konfigurieren, und es wird auf der jeweilig eingestellten Soundkarte ausgegeben.

Beim IPS_Execute Befehl werden die jeweiligen Fenster jetzt auch sichtbar.

Handle ich mir damit, wie Christoph schon fragte, irgendwelche Sicherheitslücken ein?

Ich denke mit wsh meint er den Windows Scripting Host.

Gruß Georg

Ja tust du. Das wurde von MS abgeschltet wegen der Gefahr, dass Viren und Trojaner sich als Dienst einnisten und dein Virenscanner keinen Zugriff auf sie hat.

Aber als schnelle Lösung fällt mir auch nix besseres ein. Ich arbeite bereits an Lösungen.

Toni

Hm, ich hoffe, da ist noch eine Lösung geplant. Es muss ja nicht unbedingt Winamp sein, es würde ja reichen, wenn die Playlists direkt über die IPS abgespielt werden könnte. Allerdings ist damit wohl das Soundkartenproblem auch nicht gelöst.

Wo taucht das Prg. auf unter Anwendungen, oder unter Prozesse? Wenn es unter Anwendungen erscheint gebt es keine Probleme, dann kann WSH auch darauf zugreifen.

wsh ist Windows Scripting Host. Ist recht nützlich um Programme über die IPS zu steuern.

Ich wünsche einen schönen Tag.

Christoph.

Ist schon in Arbeit. Hatte das Projekt „CoMedian“ auf Eis gelegt weil die Zeit fehlte. Muss nun aber Prio haben, denke ich… Der macht das…

Es ist in Prozesse… Hatte ich irgendwo auch schon geschrieben…

Windows Scripting Host kenne ich nur vom Namen. Hab nie damit gearbeitet.

Toni (macht nun auch endlich Feierabend :()

So. Ich habe mir die Problematik angeschaut und mit Winamp scheint dort nicht viel zu machen zu sein, ohne unschöne Tricks anzuwenden.

Ich habe aber vielleicht eine andere, bessere Lösung… Gebt mir ein paar Tage Zeit. Ich muss die Sache noch in ein Modul bauen und gucken, ob es wirklich wie gewünscht funktioniert…

paresy

Ok. Ich habe eine Alternative, die sich genau wie das Winamp Modul verhält, nur ohne Winamp :slight_smile:

Kann zur Zeit:
-MP3, MP2, MP1, OGG, WAV, AIFF, HTTP/Shoutcast Streams.
-Alle WAC_* Befehle
-Mehrere Soundkarte gleichzeitig ansprechen (Mehrere Instanzen, Soundkarte per Konsole/Eigenschaftenseite auswählbar)

Wenn alles gut funktioniert, gibt es Möglichkeiten mehr Formate wie WMV, FLAC, AAC hinzuzufügen.

Was noch nicht funktioniert:
-Shuffle nicht implementiert
-Playlist, Repeat, Volume werden beim Dienst-Neustart nicht gespeichert

Download: Ist direkt im V2 LiveUpdate mit dabei.

paresy

Hallo Parsey,

ich hätte da gleich noch einen Wunsch. Wenn die Playlist-Möglichkeit implementiert wird, kannst Du dann auch gleich dafür sorgen, dass die Zeit für die Überblendung zweier Titel eingestellt werden kann?

Winamp habe ich im Moment auf 10 Sekunden Überblendung eingestellt d. h. 10 s vor Ende blendet der aktuelle Titel langsam aus und gleichzeitig wird der neue Titel gestartet und 10 s lang eingeblendet.

Ich wünsche einen schönen Abend.

Christoph.

Hallo paresy,

ich bin gerade am testen des neuen Media Players. Die Übernahme der Winamp-Instanzen hat soweit funktioniert, nur erzeugen die Instanzen jede Sekunde 2 bis 3 Meldungen: TimerID #27 ; MediaPlayer = Position is out of bounds.
Das Ganze erzeugt dann eine Prozessorlast von 100%, die Wiedergabe funktioniert zwar, aber es lässt sich sonst fast nix machen.
Versuchsweise habe ich die Instanzen deinstalliert und wieder installiert, und nur wenn nur eine Instanz installiert ist, werden die Melungen nicht erzeugt, und die Prozessorlast ist im üblichen Rahmen.
Woran könnte das liegen?

Gruß Bender

Hallo Paresy

Ich kann mit dem neuen Media Player leider nichts mehr abspielen, weder Playlists noch mp3s.

Media Player Error (20): File/URL could not be played.

Die Meldungen werden mit folgendem Fehler vollgeschrieben:

TimerID #XX Could not read file

Haben sich die Dateinamen-Konventionen geändert?

Gruss, Andreas

Hallo paresy,

habe das gleiche Problem wie Bender. Es läuft zwar alles, aber die Logdatei wird riesig.

Gruß
Jürgen

Für die Timer* Fehler habe ich einen Fix hochgeladen. (Selber Link)

@bladerunner: Wie versuchst du die Datei abzuspielen? In welchem Ordner liegt sie?

paresy

Hallo Paresy

z.B. so:

WAC_PlayFile (17832 /*[Sound\Winamp\Sound.Winamp.Control]*/, IPS_GetKernelDir()."media\\sounds\\kuckuck\\cuckoo".$hour.".wav");

Gruss, Andreas