AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi (D7) Memp Mediaplayer anpassen (Vorspulen)
Thema durchsuchen
Ansicht
Themen-Optionen

(D7) Memp Mediaplayer anpassen (Vorspulen)

Ein Thema von JanWe · begonnen am 30. Jul 2018 · letzter Beitrag vom 31. Jul 2018
 
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
909 Beiträge
 
Delphi 12 Athens
 
#7

AW: (D7) Memp Mediaplayer anpassen (Vorspulen)

  Alt 31. Jul 2018, 11:50
Mein Problem ist nämlich, daß ich die Titel/Stücklänge in dem Code von MEMP nicht sehe/finde. Und auch nicht, in welcher Unit die steht. (Player_Klasse oder unit1)
Hallo,

Da stöbert man nur mal kurz hier im Forum, und findet direkt jemanden, der dieses uralte Tutorial ausgräbt.

Motivation hinter dem Tutorial war (neben dem Wettbewerb bei Delphi-Treff damals) es, ein halbwegs vernünftiges Basiskonzept vorzustellen. Also zum Beispiel die übliche Trennung von Daten und Anzeige, die grade bei Programmieranfängern oft komplett ignoriert wird. Damit müsste dann schon klar sein, dass man die Dauer des aktuellen Stücks nicht in der Unit1 findet (bzw. dem Formular), sondern in der Playerklasse. In der Unit1, die zum Hauptformular gehört, wird dann zur Anzeige dieser Daten auf die entsprechenden Properties des Player-Objekts zugegriffen.

Ob man bei seinem eigenen Player dann die hier vorgeschlagene Klassenstruktur wählt, oder eine andere, ist dann zweitrangig. In meinem großen Player Nemp ist dann z.B. die Playlistklasse nicht von der Playerklasse abgeleitet, sondern die Playlist hat eine Property vom Typ TPlayer, da dieser "Player" nicht nur Zeug aus der Playlist abspielen soll, sondern ggf. auch was anderes.

Zum Thema:

Das mit der Titellänge in meinen Playern ist immer so eine Sache. Einerseits bestimme ich die über meine eigenen (sehr schnellen) Methoden in der "Audiofile"-Klasse (mit Hilfe meiner Mp3FileUtils etc.), andererseits stimmen diese Berechnungen nicht immer 100%ig mit der Realität überein (CBR, VBR, XING-Header, irgendwelches anderes Gedöns), so dass diese Daten für das Abspielen mit der Dauer abgeglichen werden sollte, die die bass.dll liefert. Sonst kommt die GUI ggf. durcheinander.

In Memp sind dafür die folgenden Eigenschaften interessant:
Delphi-Quellcode:
// Properties von TMempPlayer (bzw. dann auch von TMempPlaylist, die vom TMempPlayer abgeleitet ist)
// aktuelle Position im Titel in Sekunden. Auslesen im Timer für Zeitanzeige, Setter nutzen für "3 Sekunden vorspulen" oder so
property Time: Double read GetTime write SetTime;

// aktuelle Position im Titel in "Prozent". Auslesen für den Progress in einer Scrollleiste/Progressbar o.Ä. für einen "relativen Fortschritt"
// Setter ebenso nutzbar für Klicks auf eine Progressbar/Scrollleiste oder ein geeigneteres visuelles Element
property Progress: Double read GetProgress write SetProgress;

// Dauer des aktuellen Stücks in Sekunden. Nur Getter, weil wir keinen Audio-Editor haben, sondern nur einen Player
property Dauer: Double read Getlength;
Welche visuellen Komponenten man dann wählt, um dem User die Steuerung möglichst bequem zu machen, ist dann wieder was anderes. Die TScrollbar ist da ein einfaches Beispiel, was einige Features bietet, aber eben nicht unbedingt alle. - Zum Beispiel kein OnMouseDown, um per Klick zu einer bestimmten Stelle zu springen.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz