Eigener Media Player (C++)

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Antworten
G_loW
Beiträge: 29
Registriert: Mi Jan 14, 2009 10:05 pm

Eigener Media Player (C++)

Beitrag von G_loW » Mo Aug 03, 2009 9:20 pm

Hi Leute,

Vor ungefär einer woche habe ich in einer Fachfeitschrift einen Artikel über die programmirung eines eigenen "media players" gelsesen.
Leider in BASIC.
Da ich keine Lust habe BASIC zu lehrnen frage ich einfach mal nach: Gibt es sowas auch für C (vorzugsweise C++)?
Indirekt frage ich dabei auch nach einen tuturional wie man sowas macht.

Danke im vorraus G_loW :mrgreen:
use Linux
use Code::Blocks

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Eigener Media Player (C++)

Beitrag von Xin » Mo Aug 03, 2009 10:25 pm

Die meisten Basics sind in C/C++ geschrieben und fassen in einem Basic-Befehle eine Reihe C/C++ Befehle zusammen.

Unter Windows kannst Du Dich z.B. per .COM-Schnittstelle mit DirectX verbinden und einen Player schreiben. Der Prorgrammier-Aufwand liegt bei etwa 2 Bildschirmseiten bis Du z.B. ein Video abspielen kannst.
Ich habe das vor ein paar Jahren mal als kleines Experiment programmiert, aber die Quellcodes glaube ich nicht mehr.

Ich habe mir damals ein Buch von Addison Wesley gekauft ".COM-Programmierung" und ansonsten kannst Du mal im Plattform SDK schauen, da sollten ausreichend Beispiele sein.
Unter MacOS wäre Quicktime Dein Partner und unter Linux gibt es verschiedene Rendering Engines, wie Xine.

Ein Tutorial, das alle abdeckt gibt es soweit ich weiß nicht, aber ich kann mir gut vorstellen, das wxWidgets, Qt oder SDL entsprechendes im Angebot haben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Re: Eigener Media Player (C++)

Beitrag von Jside » Di Aug 04, 2009 2:20 am

Nunja ein Media Player ist relativ einfach(sofern du die Dateistructur der Videos/Audio dateien kennst), zuerst programmierst du ein paar Funktion zum öffnen und lesen der Filmdateien, die eine native Bitmap aus dem zurzeitigen Frame generienen, und legst diese als Textur auf eine SDL Plane, danach holst du dir den nächsten Frame, und dort machst du daselbe.(Dabei musst du berechnen, wielange die funktionen brauchen, oder eine Funktion als "Watchdog" in einem anderen Thread laufen lassen, die die Zeit misst, und berechnet, wie groß das Timeout sein muss, damit es nicht mehr als 24 Frames(oder was auch immer für eine Wiedergaberate das Video hat) sind.).
Bei Audio dasselbe, die Audiodatei/spur einlesen, und die Tonlage jedes "Frames"(oder wie auch immer das bei Audio heißt) als Array generieren, die du in einer while(); Schleife der Soundkarte übergibst(Dabei wieder die Wiedergabe frequenz als Timeout miteinrachnen).(probier mal unter Linux echo 716217 > /dev/dsp)

Oder du benutzt halt M$ Zeug oder fertige Libs(z.b. ffmpeg in kombination mit einer Renderengine), da kannste selbst einen DVD Player in wenigen Minuten programmieren ;-)

Antworten