# MP3 Player programmieren



## ultrakollega (22. August 2003)

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


----------



## Dario Linsky (22. August 2003)

Du kannst einfach die Schnittstelle vom Windows Mediaplayer benutzen, der kann auch MP3s abspielen.


----------



## foxxx (26. August 2003)

Die Qualität des WMP is aber nicht grad die beste.... Da bietet Winamp schon einiges mehr.


----------



## Dario Linsky (27. August 2003)

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.


----------



## foxxx (27. August 2003)

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.


----------



## Dario Linsky (27. August 2003)

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.


----------



## foxxx (27. August 2003)

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


----------



## Patrick Kamin (27. August 2003)

*-*



> 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.


Und das schreibst du in einem VisualBasic Board? ;-]


----------



## Mr Byte (25. November 2003)

*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


----------



## ANI (26. November 2003)

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


----------



## dhagelstein (23. Dezember 2003)

Hallo ANI,

wie war das mit der Überblendung?

Mit freundlchen Gruß und Frohes Fest

Dirk


----------

