hey!
habe eine frage: und zwar bei der Funktion OnPlayerStop, kann ich auch wählen welcher Player es seien soll?
Lg; Mike
hey!
habe eine frage: und zwar bei der Funktion OnPlayerStop, kann ich auch wählen welcher Player es seien soll?
Lg; Mike
hi,
Das geht sowei ich weiss nur über einen Umweg, indem du im Script abfragst, ob der Player, der den Playerstop ausgelöst hat, den namen xy hat…
irgendwas wie (ungetestet) :
procedure OnPlayerStop(PlayerControl: IPlayerControl; Item: IPlaylistItem; Duration: int64);
begin
if (PlayerControl.GetCaption = 'playerbezeichnung' ) then begin
irgendwelche befehle...
end;
end;
begin
end.
Die Playernamen kannst du in mAirList-config ändern… standard ist ‘A’, ‘B’ usw…
grüße, michi
GetIndex geht auch, das gibt die Nummer des Players zurück (der erste hat die 0).
Das ist natürlich noch besser
danke für eure hilfe. werde das gleich morgen probiern
also das das mit den einzelnen player funktioniert super! nur leider sendet mairlist immer das selbe midi signal. könnt ihr mir helfen? hier die 2 codes:
[code]procedure OnPlayerStop(PlayerControl: IPlayerControl; Item: IPlaylistItem; Duration: int64);
begin
if (PlayerControl.GetCaption = ‘MAL1’ ) then begin
MidiOut ( 02, 00, 73, 00 ) ;
end;
end;
begin
end.[/code]
Code vom 2 Player: ( sendet komischerweiße genau das selbe Midi Signal wie der 1 Code )
[code]procedure OnPlayerStop(PlayerControl: IPlayerControl; Item: IPlaylistItem; Duration: int64);
begin
if (PlayerControl.GetCaption = ‘MAL2’ ) then begin
MidiOut ( 02, 00, 74, 00 ) ;
end;
end;
begin
end.
[/code]
handelt es sich vl um einen bug ?
Lg; Mike
mhh, ich weiss nicht wie das ist, wenn man mehrere Notificationscripts mit der gleichen Auslösebedingung parallel laufen lässt…
Probier doch einfach mal das hier:
[code]procedure OnPlayerStop(PlayerControl: IPlayerControl; Item: IPlaylistItem; Duration: int64);
begin
if (PlayerControl.GetCaption = ‘MAL1’ ) then begin
MidiOut ( 02, 00, 73, 00 ) ;
end;
if (PlayerControl.GetCaption = ‘MAL2’ ) then begin
MidiOut ( 02, 00, 74, 00 ) ;
end;
end;
begin
end.[/code]
danke!! Werde es gleich probiern;)
Lg; Mike
schade es geht trotzdem nicht. mairlist sendet immer noch genau denselben midi befehl. lässt sich da irgendwas machen ?
Lg; MIke
Versuch den Fehler mal näher einzugrenzen - wird der falsche if-Block ausgeführt? Oder sendet
MidiOut ( 02, 00, 74, 00 ) ;
tatsächlich eine 73 statt einer 74 (was eigentlich nicht sein kann)?
Was passiert, wenn du die beiden Midi-Out-Befehle mal vertauschst? Welcher wird dann gesendet?
Ich bekomme komischer weise NIE die Werte 73 oder 74, sondern immer den Wert 64 ?!
Lg; Mike
Komisch. Hier ist der Sourcecode von midiOut. Einen Fehler kann ich nicht erkennen. Ihr?
procedure TmAirListScript.MidiOut(iDevice: integer; iStatus, iData1, iData2: byte);
var handle: HMIDIOUT;
err: MMRESULT;
begin
err := MidiOutOpen(@handle, iDevice, 0, 0, CALLBACK_NULL);
if err = MMSYSERR_NOERROR then try
MidiOutShortMsg(handle, iStatus + (iData1 shl 8) + (iData2 shl 16));
finally
MidiOutClose(handle);
end
else
raise Exception.CreateFmt('MidiOutOpen (device %d): Error %d', [iDevice, err]);
end;
hmm…gibt es vl ein script, das bei einem midi out befehl die werte ins systemlog schreibt? Dann könnten wir checken ob es an mairlist liegt oder nicht.
Lg; Mike
Also ich hab das jetzt nochmal gründlich ausgetestet. Egal wie ich den Wert ändere. Ich bekomme immer nur den Wert 64 !!! Also der Fehler muss im Code sein!!!
Lässt sich da was machen, dass das funktioniert???
Lg; Mike
Ich hab das gerade mal gestet, mit MIDI-OX und dem folgenden Script:
begin
MidiOut ( 01, 00, 74, 00 ) ;
end.
Bei mir kommt die 74 (Hex 4A) brav am Midi-“Gerät” an, siehe Screenshot.
AAAHH scheiße
ich glaub ich hab vergessen in Hex umzuwandeln. werde das gleich morgen testen. danke für deine bemühungen
Lg; Mike