MP3 Player programmieren

ultrakollega

Erfahrenes Mitglied
Hallo Leute,

man hat mich gerade gefragt ob es möglich ist einen MP3 Player zu program-
mieren, der 3 Soundkarten ansteuern kann, und auf jeder Soundkarte eine
andere Play-List spielt.

Nun meine Frage:

Was brauch ich um in meinem VB Programm MP3 Files spielen zu können?
Brauch ich da nen lizenzierten Codec vom Frauenhofer Institut oder so, den
ich implementieren kann ... ?

3 verschiedenen Soundkarten ansteuern dürfte kein Problem geben ...

Danke für die Antworten ...

mfg

ultra
 
Winamp lässt sich aber AFAIK nur per SendMessage() steuern und ist daher ziemlich schwierig zu handhaben. Ausserdem bietet Winamp keine vernünftige Schnittstelle, die man in seinen eigenen Anwendungen verwenden kann.
 
Oha.. hätt ich deutlicher schreiben sollen...

Ich meinte nicht, dass du Winamp als Grundlage für dein Programm nehmen solltest, sondern: Weil ich geschrieben habe dass die Soundquali des WMP nicht besonders hoch ist, habe ich einen Player erwähnt der eine viel höhere Qualität bietet. Wenn du also einen Player als Aufsatz zum WMP schreibst wird der nicht konkurrenzfähig mit z.B. Winamp sein können. Das war es, was ich meinte.

Für Winamp gibts übrigens ein SDK und ein Entwicklerboard.
 
Natürlich ist der Media Player nicht so brauchbar wie Winamp, Sonique oder XMMS, das hab ich auch nie behauptet. Aber er bietet dennoch eine brauchbare Schnittstelle für die Wiederverwendung mittels VB an.
Allerdings würde ich (selbst mit VB) versuchen, diese Schnittstelle zu umgehen, aus genau zwei Gründen:
a) weil ich keine Lust habe, Microsoft in seiner Marktposition weiter zu stärken, was ich aber täte, wenn ich in meiner Software deren Produkte verwenden würde.
b) weil ich keine Lust habe, die Bugs und Inkompatibilität von Microsoft-Produkten in meiner Software mit einzubinden.

Trotzdem stellt der MediaPlayer zum Entwickeln von nicht kommerzieller Software für den eigenen Gebrauch (zu Lernzwecken oder für kleinere Tools) eine akzeptable Möglichkeit dar.

Dass es für Winamp ein SDK gibt, ist mir offen gestanden neu. Bisher kannte ich nur die offizielle API-Dokumentation in der NDSN, durch die es AFAIK - wie schon gesagt - nur möglich ist, mittels SendMessage Befehle an eine laufende Winamp-Instanz zu senden.
Wenn Du aber einen brauchbaren Link hast, über den man an das SDK oder eins der Entwicklerboards kommt, kannst Du ihn ja posten. ;)
 
Hinter Winamp steht Nullsoft. Unter Nullsoft gehört zu AOL - TimeWarner. Und die sind mir ehrlich gesagt genauso unsympathisch wie M$.

Für Winamp gibts z.B. das Wasabi SDK. Das gehört zu Winamp3. Für Winamp2 ist leider keins mehr verlinkt. Bin mir aber sicher, dass es das vor der 3er Version auch gab. (Sogar 2 SDKs wenn ich mich nicht irre).

Im Bereich "Development Center" kann man hier als Programmierer ein paar Fragen stellen. Ist eigentlich recht gut besucht das Board, darum bekommt man im Ernstfall auch recht schnell Informationen.


Nochmal zurück zum Thema. Ich bin einfach der Meinung, dass man mit VB und vorallem nicht in der Schnelle einen konkurrenzfähigen MP3-Player auf die Beine stellen kann. Deswegen ist so ein Projekt uninteressant. Warum etwas programmieren, wenn es hunderte bessere Produkte bereits gibt!?

MfG

f0x
 
mciSendString

Hi warum nimmst du nicht einfach die mcisendstring von VB?
Die unterstützt alle formate!
Ist auch rellativ einfach!
Wenn du willst schick ich dir mal ein beispiel!
MfG
Mr Byte
 
hallo ultrakollega,

ich benutze für das Abspielen einer MP3-Datei die ActiveMovie-Control Type library(Quartz.dll)

Public pMC As FilgraphManager

Set pMC = New FilgraphManager
pMC.RenderFile 'Mp3Datei-Pathname'

pMC.Run
pMC.Stop
pMC.Pause

Timer für die aktuelle Positionsanzeige

Private Sub Timer1_Timer()

Dim pME As IMediaEvent
Dim pMEPos As IMediaPosition
Dim EventCode As Long

Set pME = pMC
pME.WaitForCompletion 0, EventCode
Set pMEPos = pMC
if sldPosition_gedrückt then
pMC.Pause
pMEPos.CurrentPosition = sldPosition.Value
pMC.Run
end if

Set pMEPos = Nothing
Set pME = Nothing

If EventCode = 0 Then Exit Sub
pMC.Stop
Set pMC = Nothing

End Sub

sldPosition = Slider-Control (sldPosition_Change-Ereignis)
Es lassen sich dadurch auch überblendungen zweier Player programmieren.

ANI
 
Zurück