Seite 1 von 1

PMVs MiniPlayer -RC 1- (samt Roman)

Verfasst: 31.01.2007 05:11
von PMV
Hinweiß: dem Player haftet eine längere Geschichte an, sorry -.- Wer
nicht so viel Zeit hat kann sich die Featureliste durchlesen, wer etwas
mehr Zeit hat überspringt die Vorgeschichte und wer dann mal
Langeweile hat kann den ganzen Text lesen *gg*

Vorab: der Player hat unteranderem nützliche Features für Musikdateien,
die nicht so "perfekt" sind <)

So ... wers glaubt oder nicht, auch ich hab mich mal an einem
Musikplayer versucht. Vor 1 Jahr hätte ich gelacht, wenn jemand gefragt
hätte, ob ich einen Musikplayer programmieren würd. Mal davon
abgesehen das es schon unzählige und auch gute Player gibt, damals war
die einzige Musik die ich gehört hab die, die ich per zufall auf Viva oder
MTV gesehen hab.

Aber warum nun? Ihr habt sicher schon Iggels Videoplayer gesehen.
Wenn nicht, selbst schuld :mrgreen: Genau diese Idee hatte ich im Juli 06
auch, meine Lösung war aber nicht Massentauglich und deshalb hab ich
diese nie veröffentlicht. Ergebnis war damals ein kleiner Musikplayer
basierend auf FMOD und ein umständliches Downloadprogramm.
Außerdem müssen die FLV-Dateien umgewandelt werden, gut ist jetzt
immer noch so -.-. Allerdings habe ich ein schönes Zufallssystem
eingebaut, darüber aber später mehr.

Der Player nutzte damals die Sound-Befehle von FMOD und brauchte
daher nicht nur viel Speicher, sondern je nach PC auch ein paar
Sekunden zum laden (bei voller Auslastung). Ein TrackBar ist mit den
Sound-Befehlen glaub ich auch nicht möglich.

Der Downloader nutzte den IE6 um die FLV-Dateien ins Temp-Verzeichnis
zu bekommen, von dort wurden die Videos dann in ein Zielverzeichnis
kopiert, das klappte aber auch nicht immer auf anhieb. Die temporären
Dateien des IE6 mussten zudem auch immer vorher gelöscht werden.
Wie schon gesagt, nicht Massentauglich. :freak:

Interessant an meinem Player-Download-System ist aber die Playlist, die
ich damals eingeführt hab. Hier werden nicht nur Interpret- und Titelname
gespeichert, sondern auch die ID welche sie auf YouTube hat. War aber
auch noch nicht das wahre.

So viel zu damals, dank Iggels hab ich nun endlich den Ansporn alles zu
überarbeiten.

-> Interssant:
Den MiniPlayer hab ich nun (so gut wie) fertig. TrackBar und Lautstärk
sind nun direkt im Hauptfenster integriert.

Das Format der Playlist hab ich ebenfalls erweitert, es kann nun für jedes
Lied das entsprechende Portal ausgewählt werden, sofern der MiniPlayer
das kennt. Die Liste der bekannten VideoPortale ist erst mal auf YouTube
beschränkt, wird in einer späteren Version erweitert und kann auch
manuel erweitert werden (Data.dat).

Zudem habe ich noch ein Start- und EndOffset einprogrammiert. Nach
späteren konvertieren mit z.B. SUPER (meine Empfehlung 8)) ist es störend, wenn
z.B. das eigentliche Lied erst nach 20 Sekunden anfängt. Bearbeiten der
Musikdatei mit einem entsprechenden Programm kann auf die Dauer
nervig werden, mit dem Offset nun kein Problem mehr.

Die Lautstärke ist nicht bei jedem Lied gleich, manches ist sehr laut,
anders super leise. Durch die Einstellungsmöglichkeit für jedes Lied eine
andere Lautstärke ein zu stellen kann dem entgegen gewirkt werden. Die
Lautstärke kann relativ zu einem allgemein gültigen Wert angegeben
werden (es geht nur höher) oder aber absolut. Standarteinstellung ist
aber das Normale, die Lautstärke des Players wird einheitlich eingestellt.
Es kann aber jederzeit zwischen allen 3 Modien umgeschaltet werden. Die
Einstellungsmöglichkeit ist immer von 0 - 100. Bei relativer Angabe kann
der Standartwert ebenfalls nur von 0 - 100 gehen, wird aber nicht
umgerechnet auf die möglichen 0 - 255, es werden somit nur die unteren
101 Positionen genutzt.

-> sehr Interessant: (das Wichtigste für mich an dem MiniPlayer *gg*)
Ein Zufallsgenerator ist immer aktiv, dieser greift aber nicht auf alle
vorhandenen Lieder zu (im normalfall). Jedes Lied hat eine Position,
welche sich bei einem Liedwechsel um einen vermindert. Ein Wert
"maximale Position" bestimmt, welche höchste Position ein Lied haben
darf um im Zufallsgenerator berücksichtigt zu werden.
Die Position eines Liedes nach dem Abspielen wird bestimmt durch den
Wert "letzte Position". Ist dieser Wert gleich 0, so wird die Position gleich
der Anzahl der vorhandenen Lieder gesetzt.
Um nun Lieblingslieder öfter abspielen lassen zu können, als andere
Lieder, kann man jedem Lied eine Priorität geben. Der Wert kann 0 - 100
sein, versteht sich als umgedrehte Prozentangabe der "letzten Position".
100% bedeutet also, das die Position des Liedes nach dem Abspielen
immer 0 sein wird, also ganz vorne beim Zufallsgenerator. Eine Angabe
von 0% wird das Lied immer nach hinten katapultieren.

-> Features des MiniPlayers (Stand: 30.01.07)
Playlist per PB-Preference:
- Lieder sind einem Interpreten untergeordnet
- Speicherung der ID des Liedes für ein VideoPortal
- Speicherung des zugehörigen VideoPortals
- Speicherung eines Start-/ EndOffsets (in Millisekunden)
- Speicherung eines optionalen "letzten Position" (bei 0 wird die Anzahl der Lieder genommen)
- Speicherung einer maximalen Position (Liedpos. <= maxPos --> Zufallsgenerator)
- Speicherung der Positionen für alle Lieder (Liedwechsel: Pos - 1)
- Speicherung der Priorität (in Prozent)
- Speicherung der Lautstärke für jedes Lied relativ zu einer Standartlautstärke oder absolut (optional)
- manuelle Änderung der Playlist möglich (Fehler werden nicht abgefangen)

Stream-Befehle der FMOD-DLL:
- geringe Ladezeit eines Titels (unter 1 Sekunde)
- geringe Speicherauslastung (unter 5 MB)
- geringe CPU-Auslastung (bei meinem PC kann ich das aber nicht testen ...)
- unterstützung aller Formate, die die FMOD-Streaming-Befehle unterstützen
- Platformunabhängig (?)

Sonstiges:
- Vorabauswahl eines "nächsten Titels"
- hohe Priorität, dadurch kein Stocken der Lieder
- öffnen des original Videos im Browser (wenn ID angegeben wurde)
- besonderer Zufallsgenerator (siehe oben unter "sehr interessant")
- automatische Sortierung der Interpreten und Lieder nach Name
- zusätliches Fenster zur Anzeige aller Lieder, sortiert nach Position
- Open-Sorce, zum lernen für andere
--- Code wird aber erst mit der Final-Version veröffentlicht
--- denn da es eine Blitzaktion war, muss ich ihn noch aufräumen -.-
--- und ein paar mehr Kommentare wären sicher auch nicht übel :lol:
--- Windows-Only-Befehle mit Compiler deaktiviert bei anderem BS
--- somit eventuell auch für andere Betriebssysteme möglich (?)
- Downloadfunktion für VideoPortale (externes Programm; noch nicht eingebunden)
- keine visuellen Spielerreihen

Dann mal Bildchen, ich nehm die 3 ersten Fenster die man sehen wird:

Bild
Startfenster, auswahl einer Playliste oder anlegen einer neuen Playliste

Bild
Das Hauptfenster, nicht überladen und auch nicht zu groß. Ich denke
damit können sich einige anfreunden.

Bild
das umfangreichste Fenster, ändern aller Playlist-Eigenschaften

Version: RC 1 (nachträgliche gravierende Änderungen vorbehalten :D)
-> Download: PMVs MiniPlayer @ pmv.de.vu
(bitte auf Bugs testen; Feetback wäre nicht übel -> Vorschläge?)

-> geplante Downloadfunktion:
Jetzt hab ich es nicht geschaft, die geplante "Downloadfunktion" zu
erwähnen :lol: ... oh je. Nachgereicht:
Naja gut, der zweite Teil des ganzen, der Downloader, ist noch nicht
überarbeitet und auch nicht integriert. Der Button zum Aufrufen des
original Videos im Hauptfenster ist eigentlich zum starten des
Downloaders. Aber da keine Funktion, hab ich ihn schnell umfunktioniert.
Mal schauen ob ich den lasse oder das wieder rückgängig mache.

Nun weiter: Geplant ist mit Iggels zu koopierieren, aber darüber haben
wir noch nicht so ausgibig gesprochen, das will ich in den nächsten Tagen
nachholen. Sein VideoPlayer hat schließlich alle Funktionen, die meinen
Downloader perfektionieren würde. Es müssten auch nur noch ein paar
Kleinichkeiten Eingebaut werden (was ich auch machen kann), damit alles
so Funktioniert wie ich es gerne hätte. Es gäbe aber auch die Möglichkeit,
nur seine DLLs zu verwenden und er hatte einen weiteren Vorschlag
genannt, den ich hier nicht erwähne, weil ich nicht weis ob der schon für
die Öffentlichkeit bestimmt ist. Natürlich ist es auch denkbar, wenn ich
alles selber machen muss ... vielleicht mit eigenen DLLs, es wäre aber
sicher nur YouTube.com von mir unterstützt. Obwohl, da könnte man
dann ein extra Doku machen und User könnten die anderen Portale leicht
hinzufügen. Wäre auch nicht übel ... naja egal. Entscheidet sich später.

Jetzt ein paar Details zu meinen Vorstellungen:
Der Downloader ließt die Playlist ein und kann damit bestimmen, ob ein
video bereits runter geladen wurde, oder nicht. Manuelles Auswählen
eines einzelnen zu ladenden Liedes oder aber (bei gedrücktem Toggled-
Button) automatischer Download aller ausstehenden Downloads. Angabe
eins allgemeinen Downloadordners und benennung der Dateien, anbieten
würden sich dafür Platzhalter damit jeder nehmen kann was er will.

Puh ... der Beitrag hat mich glatt 4 Stunden gekostet (bei über 400
Anschlägen pro Minute *gg*) ... danke an alle die sich wirklich für den
kompleten Post interessiert haben. (werden wohl net viele sein -.-)
An den Rest ... *grins* ... ne Spaß, ich hab doch keine bösen gedanken
:lol: ... ich kanns euch schließlich nicht verübeln. Allein interesse an den
eigentlichen Programmen reicht. :D

Hm, hoffentlich sind da nicht all zu viele Rechtschreib ... äh ... Tippfehler
drinne :mrgreen:

MFG PMV

PS: bis zur Final ist alles Möglich, je nach Interresse <)

Verfasst: 31.01.2007 09:33
von Kukulkan
Hallo PMV,

Sieht wirklich toll aus. Ich hab deinen 'Roman' jetzt nicht gelesen, aber das Programm macht einen guten Eindruck. Schade nur, dass es 'nur' JAMP ist (Just Another Media Player).

Aber gute Arbeit! :allright:

Noch was:
- keine visuellen Spielerreihen
Schade eigentlich, denn ich kenne Leute die haben vier Player installiert und dann wieder de-installiert weil Ihnen die Effekte nicht zugesagt haben. Darf man heutzutage einfach nicht Unterschätzen...

Volker

Verfasst: 02.02.2007 19:43
von Iggels
Hi PMV

freut mich, dass ich endlich deinen MiniPlayer ausprobieren darf. :-D

Allerdings hab ichs bis jetzt noch nich geschafft, ein youtube-lied abzuspielen.

Entweder stell ich mich einfach zu blöd an ;-) ,oder ich hab einen möglichen Fehler entdeckt.

Ich schreib hier einfach mal hin, was ich bis jetzt gemacht hab:
- Leere "Liste.dat" erstellt und diese mit dem Button "Neu" in den Player geladen
-Um Titel hinzuzufügen, hab ich auf "Verwalten" geklickt und erstmal einen Interpreten hinzugefügt
-Dann hab ich unter diesem Interpreten-Namen einen Lied hinzugefügt
Ich hab den Titel eingeben, dazu eine ID (z.B. 5O-6q_p_p-I), dann hab ich die lautstärke auf 50 gestellt und die Priorität auf 30. Dann auf "Übernehmen" und das Verwalten-Fenster geschlossen
-Wenn ich jetzt auf den Play-Button klicke, kommt die Meldung "Es steht kein Titel zur Auswahl. Mögliche Ursachen: (...)"
-Auch wenn ich auf "Auswahl" klicke und einen Titel auswähle, ist der "Auswählen" - Button und der Listicon deaktiviert.


Ich werd ein bisschen damit rumspielen, vielleicht krieg ich die Playlist doch noch selber zum laufen ;-)

MfG Iggels

Verfasst: 03.02.2007 02:46
von PMV
@Volker Schmid
Danke fürs Feetback ... naja, ich hab ja vor den Quellcode zu
veröffentlichen ... dann kan jeder auf der Grundlage dieses Players damit
machen, was er will ... aber ich hab net vor, irgend welche Visualisierung
ein zu bauen ... vielleicht unter umständen diese Balcken, wie sie (fast)
jeder Player hst, aber ich glaubs weniger.

@Iggels
Da es sich hierbei um einen ganz normalen Musikplayer handelt, mit
kleinen besonderen Features ist es nicht möglich, FLV-Dateien ab zu
spielen wie normale mp3s und änliches ... hier ist es lediglich möglich,
per Button den Browser zu öffnen mit gewünschten Video. Dazu ist zum
einen im Requester "Titel hinzufügen" oder "Titel ändern" der Button
nebem der Angabe des Videoportals ("->") so wie für gerade laufenden
Titel der Button im Hauptfenster ganz rechts.

Um ansonnsten Musik abspielen zu können musst dem Player also noch
unter "Pfad" angeben, wo sich die Musikdatei (auf deinem PC) befindet.
Es wäre natürlich ein traum, wenn es möglich wäre FLV-Dateien so ab zu
spielen wie andere Dateiformate. Mit der Problematik hast dich ja auch
auseinander gesetzt. Am besten du meldest dich bei mir, wenn du mit
ICQ online gehst, wasse ja so wie so tun sollst -.- ... natürlich wäre es
auch genial, wenn andere Infos dazu hätten. :D

Aus dem englischen Forum hab ich schon Code, welcher SWF-Dateien
darstellen kann (mittels der ATL.dll). Aber die SWF ist dann für das
abspielen der FLV-Datei verantwortlich und ich habs net geschaft, die
benötigten Informationen während der Laufzeit aus zu lesen -.-

MFG PMV