Zurück und Vorspulen im MediaPlayer
-
Also ich bin noch Anfänger

Ich hab das mit MediaPlayer1->Step() ausprobiert, aber da tut sich nichts.
-
Aus der Hilfe:
Die Methode Step spult im aktuell geladenen Medium um die in der Eigenschaft Frames angegebene Anzahl von Frames nach vorne.
void __fastcall Step(void);
Beschreibung
Der Aufruf von Step erfolgt, wenn zur Laufzeit auf die Schaltfläche Step des Media-Players geklickt wird.
Nach Beendigung der Ausführung speichert Step in der Eigenschaft Error einen numerischen Fehlercode. Die entsprechende Fehlermeldung wird in der Eigenschaft ErrorMessage abgelegt.
Die Eigenschaft Wait bestimmt, ob die Steuerung an die Anwendung zurückgegeben wird, bevor die Methode Step vollständig ausgeführt ist. Die Eigenschaft Notify gibt an, ob Step ein OnNotify-Ereignis erzeugt.
Was sagt die Eigenschaft Error?
-
Christian211 schrieb:
Aus der Hilfe:
Was sagt die Eigenschaft Error?Eigenschaft Error? Ist das das eine Fehlermeldung?
Die Methode Step spult im aktuell geladenen Medium um die in der Eigenschaft Frames angegebene Anzahl von Frames nach vorne.
Wenn ich MediaPlayer1->Step() eingebe, hab ich aber keine Anzahl von Frames. Und spult der nun vor oder zurück
-
Ähh, bin ich der Einzige mit einer HILFE??
Was ist an..
Anzahl von Frames nach vorne.
nicht zu verstehen?
Wieder aus der Hilfe
Die Eigenschaft Frames legt die Anzahl der Frames fest, um die vor- oder zurückgespult wird.
__property int Frames = {read=FFrames, write=FFrames, nodefault};
Beschreibung
In der Eigenschaft Frames legen Sie die Anzahl der Frames fest, um die mit der Methode Step nach vorne bzw. mit der Methode Back zurückgespult werden soll. Frames ist standardmäßig auf zehn Prozent der gesamten Länge des aktuell geladenen Mediums gesetzt. Diese Gesamtlänge wird mit der Eigenschaft Length festgelegt.
Die Definition eines Frame ist von dem verwendeten Multimedia-Gerät abhängig. Bei Anzeigemedien ist ein Frame mit einem einzelnen Bild identisch.
Da steht was von 10%.....
Auch aus der Hilfe
Die Eigenschaft Error bezeichnet den MCI-Fehlercode, der von der Methode zur Steuerung des Media-Players zurückgegeben wird.
__property int Error = {read=FError, nodefault};
Beschreibung
Die Eigenschaft Error enthält den MCI-Fehlercode, der von der zuletzt aufgerufenen Methode zur Steuerung des Media-Players (Back, Close, Eject, Next, Open, Pause, PauseOnly, Play, Previous, StartRecording, Resume, Rewind, Step oder Stop) zurückgegeben wurde. Die Eigenschaft ErrorMessage beschreibt den Fehler.
Die Methoden zur Steuerung des Media-Players geben die gleichen Fehlercodes zurück wie die Funktion mciSendCommand. Die Meldung zur Erläuterung des Fehlercodes ist in der Eigenschaft ErrorMessage gespeichert.
Verursachte die zuletzt aufgerufene Methode zur Steuerung des Media-Players keinen Fehler, hat Error den Wert Null. Falls ein Fehler aufgetreten ist, enthält Error einen Wert ungleich Null. Tritt beim Öffnen des Geräts ein Fehler auf, führt dies zu einer EMCIDeviceError-Exception.
Mal F1 drücken und unter TMEDIAPLAYER lesen
-
Ich hab da ja schon nachgeschaut ich versteh das nur nicht. Bin halt ganz neu.
Ich hab in der Hilfe nach dieser Error Dingens nachgeschaut und hab dann das hier eingegeben:
[cpp]
AnsiString MPError;try
{
MediaPlayer1->Step();
}
catch (...)
{
MPError = "Error " + IntToStr(MediaPlayer1->Error) + ": " + MediaPlayer1->ErrorMessage;
Application->MessageBox(MPError.c_str(),NULL, MB_OK);
}[code]
Meintest du das? Da passiert bei mir nichts.
-
a) was steht den nun in der MessageBox?
b) ist die Funktion STEP nun von den Werten in FRAMES und LENGHT abhängig. Sind diese versorgt?
-
Tja, habe das nun gerade mal ausprobiert. Tatsächlich hat die Funktion STEP keine Wirkung, egal was in Frames oder Length steht. Einen ErrorCode gibt es auch nicht.
Vielleicht weiss ein anderer was -> ich muss mal googeln
-
Habe nix passendes gefunden
-
Position sollte aber eigentlich funktionieren. Was für eine Datei bzw. welches Format soll denn abgespielt werden?
-
also wer bruchrechnen kann ist klar im vorteil, der ist nämlich nicht auf fertige komponenten und methoden angewiesen sondern kann sowas auch selbst machen:
MediaPlayer1->Position += (MediaPlayer1->Length*X)/100;geht im film um X% der film-länge vor (wenn X negativ ist, gehts zurück)
ok, man sollte vielleicht noch überschreitungen der grenzen prüfen, ich weiss jetzt nicht so genau, wie tolerant die mediaplayer komponente da ist...
-
Eine Änderung an Position führt zum Abbruch der Wiedergabe (mp3) und Start des nächsten Songs.
Wer lesen kann, hat noch mehr Vorteile, der erkennt, dass es nicht um die Berechung geht, sondern überhaupt die Funktionalität im TMediaplayer zu finden.
-
also mittels Position setzen und dann durch
MediaPlayer1->Play();
fortsetzen klappts bei mir mit videos... mp3s hab ich noch nicht ausprobiert...
-
Kann nur wiederholen:
Eine Änderung an Position führt zum Abbruch der Wiedergabe (mp3) und Start des nächsten Songs.
Auch ist die Funktion nur während PLAY ausführbar. Ohne dass das Medium wiedergegeben wird kommt die Fehlermeldung Es ist kein MCI Gerät geöffnet.