Du bist nicht angemeldet.

progglord

Registrierter Benutzer

  • »progglord« ist männlich
  • »progglord« ist der Autor dieses Themas

Beiträge: 902

Dabei seit: 10. April 2009

Wohnort: Holzminden

Hilfreich-Bewertungen: 22

  • Private Nachricht senden

1

Montag, 3. August 2009, 18:04

Audio/Video mit DirectX!

Hallo Community,
da ich schon viele posts gelesen habe in denen gefragt wird wie man Musik oder Videos Ohne das WMP Control abspielt, mach ich mal dieses Tutorial!

1. Also ihr müsst euch als erstes das DirectX SDK herunterladen!
Das DirectX SDK benötigt ihr bloß auf dem Entwickler Computer! Der Benutzer muss bloß DirectX9 installiert haben! Ihr solltet es vielleicht in euren Programmen mitgeben falls das Programm auf einem OS unter XP laufen soll ;) unter Vista/7 ist das schon vorinstalliert!

2. Ihr müsst über Projekt->Verweis hinzufügen einen Verweis auf Microsoft.DirectX.AudioVideoPlayback und Microsoft.DirectX hinzufügen!

3. Solltet ihr die Namensräume importieren:

Visual Basic Quellcode

1
2
Imports Microsoft.DirectX
Imports Microsoft.DirectX.AudioVideoPlayback


Ihr solltet nun eine Globale Variable Audio/Video anlegen!
Für Audio:

Visual Basic Quellcode

1
Private WithEvents AudioDatei As Audio

Für Video:

Visual Basic Quellcode

1
Private WithEvents VideoDatei As Video


Zum Abspielen müsst ihr AudioDatei oder VideoDatei definieren:
Für Audio:

Visual Basic Quellcode

1
AudioDatei = New Audio("Pfad")

Für Video:

Visual Basic Quellcode

1
VideoDatei = New Video("Pfad")


Pfad ist hier ebenhalt der Pfad zur Datei des Videos/Audios

dann müsst ihr es noch abspielen:
Für Audio:

Visual Basic Quellcode

1
AudioDatei.Play()

Für Video:

Visual Basic Quellcode

1
VideoDatei.Play()


Wenn ihr bei Video keinen Owner festgelegt habt öffnet sich ein Extra Fenster mit der Größe des Videos! Den Owner festlegen könnt ihr damit:

Visual Basic Quellcode

1
VideoDatei.Owner = Panel1

ihr solltet das Panel1 in noch ein Panel stecken damit sich das Panel1 nicht immer mitvergrößert! Wenn ihr dies nicht tut Wird sich die Größe des Panels der Größe des Videos anpassen!

Nun könnt ihr natürlich noch Pausieren und Stoppen!
Für Audio:

Visual Basic Quellcode

1
2
AudioDatei.Pause() 'Pausieren
AudioDatei.Stop() 'Stoppen

Für Video:

Visual Basic Quellcode

1
2
VideoDatei.Pause() 'Pausieren
VideoDatei.Stop() 'Stoppen


und um die Aktuelle Position/ Länge des Liedes/Videos auszurechnen könnt ihr diesen Code verwenden:
Für Audio:

Visual Basic Quellcode

1
2
Dim Länge As String = TimeSpan.FromSeconds(AudioDatei.Duration).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(AudioDatei.Duration).Seconds)
Dim CurrentPos As String = TimeSpan.FromSeconds(AudioDatei.CurrentPosition).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(AudioDatei.CurrentPosition).Seconds)

Für Video:

Visual Basic Quellcode

1
2
3
Dim Länge As String = TimeSpan.FromSeconds(VideoDatei.Duration).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(VideoDatei.Duration).Seconds)
Dim CurrentPos As String = TimeSpan.FromSeconds(VideoDatei.CurrentPosition).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(VideoDatei.CurrentPosition).Seconds)
 

die Beiden liefern eine Ausgabe im Format 00:00 aus!
CurrentPosition und Duration geben die Totalen Sekunden zurück!

Ihr könnt natürlich auch die Lautstärke angeben:
Für Audio:

Visual Basic Quellcode

1
AudioDatei.Volume = 0

Für Video:

Visual Basic Quellcode

1
VideoDatei.Audio.Volume = 0

0 ist hier das Lauteste! Alles über 0 schlägt Fehler!
das Minimum ist hier -10000 aber -10000 ist wirklich völlig kein Ton mehr!
eigentlich ist -5000 auch so leise das man es fast garnicht hört! nur wenn man sehr genau hinhört!

Beim Video muss man hier auf das Audio Element des Videos zugreifen!
Man kann so zB auch die Musik des Videos stoppen wobei die Bilder weiterlaufen!

Visual Basic Quellcode

1
VideoDatei.Audio
liefert nähmlich ein Audio Element!

Es gibt auch verschiedene Events:
Stopping - Wenn die Methode .Stop() aufgerufen wird
Ending - Wenn die CurrentPosition = Duration ist ACHTUNG: Stopping ist nicht Ending!
Pausing - Wenn die Methode .Pause() aufgerufen wurde
Starting - Wenn die Methode .Play() aufgerufen wurde
Disposing - Wenn die Methode .Dispose() aufgerufen wurde(Zerstört das Element!)

Es gibt auch verschiedene Propertrys:
Playing - True wenn die das Audio/Video gerade abspielt
Paused - True wenn das Audio/Video pausiert ist
Stopped - True wenn das Audio/Video gestoppt ist

Ich werde hier jetzt keinen vollständigen Code mit hereinstellen da ihr denke ich mal den Code selber zusammstellt ;)
so ich hoffe ich konnte hier jemanden helfen!
wenn es Fehler gibt bitte hier Posten ;)
auch bei fragen etc. hier Posten ;)

progglord

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »progglord« (3. Dezember 2011, 10:34)


  • »pasi2009« ist männlich

Beiträge: 212

Dabei seit: 4. November 2009

Wohnort: Klotten

Frühere Benutzernamen: pasi2009

Hilfreich-Bewertungen: 13

  • Private Nachricht senden

2

Sonntag, 27. Dezember 2009, 13:37

Welche Formate kann das den eigentlich abspielen? Und ich muss das als Admin starten damit es funktioniert
MyMusic 2011


A: Wie schmeckt das Bier?
C: Bier schmeckt immer.
B: was trinkst du denn?
C: Limo.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »pasi2009« (27. Dezember 2009, 15:37)


F.A Development

unregistriert

3

Sonntag, 27. Dezember 2009, 15:27

ich finds echt super das sich leutz wie du hinhocken und tuts schreibn, und zwar ohne c&p (großteils ;) )

ich finde das tutorial echt gut aber weißt du auch wie man den vortschritt auf eine trackbar oder so überträgt, so das das video/die audiodatei acuh da ist wo die trackbar dann hingezogen wird (brauch kein c&p) würd nur gerne wissen wie ich das ca machn muss?

danke

F.A Development

unregistriert

4

Sonntag, 27. Dezember 2009, 16:11

hey kannst du vlt den pfad sagn weil ich (doof wie immer ^^) die datei zum drauf verweisen nicht finde

danke

LG Fabi

progglord

Registrierter Benutzer

  • »progglord« ist männlich
  • »progglord« ist der Autor dieses Themas

Beiträge: 902

Dabei seit: 10. April 2009

Wohnort: Holzminden

Hilfreich-Bewertungen: 22

  • Private Nachricht senden

5

Sonntag, 27. Dezember 2009, 18:08

@pasi2009: Es kann meines Erachtens alle gängigen Formate abspiele. Also wav, mp3 und wma kann es aufjedenfall :P.

@F.A Development: Du kannst CurrentPosition auch setzen nicht nur lesen ;). Entweder du machst das auf die trackbar mit Prozentrechnung oder du setzt Maximum entsprechend.

Du benötigst keinen Pfad ;). Wenn du das SDK richtig (!) installiert hast musst du bei Verweise hinzufügen den Reiter .Net auswählen und dort gibt es dann Microsoft.DirectX.AudioVideoPlayback etc.

F.A Development

unregistriert

6

Donnerstag, 31. Dezember 2009, 14:50

ich hab probiert ein maximum zu setzen oder das mit dem prozentrchnen (ich weiß aber bei beidem nich wirklich wie) und es hat nicht funktioniert, wrde mich echt freun wenn du das erklären könntest (vlt code beispiel aber kein C&P sonst lerne ich nichts :) ) würd mich echt freun

LG Fabi

progglord

Registrierter Benutzer

  • »progglord« ist männlich
  • »progglord« ist der Autor dieses Themas

Beiträge: 902

Dabei seit: 10. April 2009

Wohnort: Holzminden

Hilfreich-Bewertungen: 22

  • Private Nachricht senden

7

Freitag, 1. Januar 2010, 16:54

naja, du hast eine Progressbar Minimum 0 und Maximum 100.
Du hast meinetwegen eine Länge von 3min (3000sec) und eine aktuelle Position von 2,56min (2560sec). Und so kannst du dann den Status berechnen:
x = 2560 * 100 / 3000.
das ergibt dann ~85%. Diese 85 musst du einfach als Value setzen ;). Umgekehrt kannst du es nat. auch rechnen:
x = 3000 * pro / 100
wobei pro hier die Prozentzahl ist, währe pro 85 sollte 2550 herrauskommen :).

LucaWelker

C und C#ler

  • »LucaWelker« ist männlich

Beiträge: 417

Dabei seit: 18. Juli 2009

Wohnort: Neulingen, Deutschland

Hilfreich-Bewertungen: 66

  • Private Nachricht senden

8

Montag, 4. Januar 2010, 13:18

Gibt es eine Möglichkeit per DirectX auch Radiostreams abzuspielen?

lg.

LucaWelker
Aktuell arbeiten wir unter Hochdruck an www.up-the-file.de und werden bald eine neue Version fertigstellen.
Bei fragen eine eMail an: contact@up-the-file.de


progglord

Registrierter Benutzer

  • »progglord« ist männlich
  • »progglord« ist der Autor dieses Themas

Beiträge: 902

Dabei seit: 10. April 2009

Wohnort: Holzminden

Hilfreich-Bewertungen: 22

  • Private Nachricht senden

9

Montag, 4. Januar 2010, 15:41

Nein nicht direkt. Außer du machst es so das du dir einen Stream zum Server aufbaut immer ausließt (nat. mit hohem Buffer :D) das dann als Datei speicherst und diese Datei abspielst ;). Ich habe das mal gemacht, hat soweit auch funktioniert, aber es hat manchmal ausetzer gehabt, das müsste man nat. noch durch gegeben caches machen ;).

LucaWelker

C und C#ler

  • »LucaWelker« ist männlich

Beiträge: 417

Dabei seit: 18. Juli 2009

Wohnort: Neulingen, Deutschland

Hilfreich-Bewertungen: 66

  • Private Nachricht senden

10

Montag, 4. Januar 2010, 15:51

okee, danke für deinen Antwort...

Aber gibts neben dem Windows Media Player, noch ne andere möglichkeit?:D
Aktuell arbeiten wir unter Hochdruck an www.up-the-file.de und werden bald eine neue Version fertigstellen.
Bei fragen eine eMail an: contact@up-the-file.de


progglord

Registrierter Benutzer

  • »progglord« ist männlich
  • »progglord« ist der Autor dieses Themas

Beiträge: 902

Dabei seit: 10. April 2009

Wohnort: Holzminden

Hilfreich-Bewertungen: 22

  • Private Nachricht senden

11

Mittwoch, 6. Januar 2010, 17:21

naja wie gesagt müsstest du dir das Streamen selbst basteln, bedeutet du connectest zum Server über WebRequest, bekommst nen Stream und ließt den aus ;). Nat. noch die Datei abspielen.

tourette

Hinter dir, ein dreiköpfiger Affe!

  • »tourette« ist männlich

Beiträge: 142

Dabei seit: 19. Januar 2009

Wohnort: Vorm Bildschirm

Frühere Benutzernamen: tourette

Hilfreich-Bewertungen: 6

  • Private Nachricht senden

12

Freitag, 8. Januar 2010, 18:03

Welche Videoformate werden unterstützt?

  • »eminem« ist männlich

Beiträge: 251

Dabei seit: 10. Dezember 2009

Wohnort: Düsseldorf

  • Private Nachricht senden

13

Freitag, 8. Januar 2010, 19:29

Hallo und erstmal Klasse tut, funktioniert auch so weit, mein Problem ist, das bei mir die Audio Länge nicht richtig angezeigt wird, es sind fast immer 80 Sek mehr, und bekomme das nicht richtig eingestellt,
kann mir einer helfen?
MFG
EMINEM
_______________________________________________
Entweder man ist Teil der Lösung oder Teil des Problems.

progglord

Registrierter Benutzer

  • »progglord« ist männlich
  • »progglord« ist der Autor dieses Themas

Beiträge: 902

Dabei seit: 10. April 2009

Wohnort: Holzminden

Hilfreich-Bewertungen: 22

  • Private Nachricht senden

14

Freitag, 8. Januar 2010, 20:35

@tourette: Wer lesen kann ist klar im Vorteil ;).
@eminem: ja ich weiß, ich weiß abe rauch nicht warum das so ist, die Zeitumrechnung ist aufjedenfall richtig und den Code vom DX kann man ja auch nciht einsehen. Also ich weiß jetzt keine Lösung. Man könnte ja mal Googlen mit vb.net mp3 Länge oderso, irgendwas womit man die Länge auch ohne AVP bekommt ;).

TS-Development

unregistriert

15

Freitag, 8. Januar 2010, 20:58

Was heißt den richtig installiert(!). Ich kann keinen Verweis mit dem Namen finden ?

progglord

Registrierter Benutzer

  • »progglord« ist männlich
  • »progglord« ist der Autor dieses Themas

Beiträge: 902

Dabei seit: 10. April 2009

Wohnort: Holzminden

Hilfreich-Bewertungen: 22

  • Private Nachricht senden

16

Samstag, 9. Januar 2010, 11:23

naja einfach installieren halt. Wenn du das installiert hast muss es da sein, evtl. mal neustarten oder die IDE neustarten, oder auch mal das SDK neuinstallieren. Aber bei der Installation wäre es glaube ich ratsam die IDE aus zu haben.

  • »eminem« ist männlich

Beiträge: 251

Dabei seit: 10. Dezember 2009

Wohnort: Düsseldorf

  • Private Nachricht senden

17

Samstag, 9. Januar 2010, 18:36

Das Problem mit der Zeit sollte echt mal nachgegangen werden, weil solange bis dieses Problem nicht behoben ist, funktioniert meine Trackbar nicht richtig, weil die angaben falsch sind...
bis jetzt habe ich noch nichts gefunden.
MFG
EMINEM
_______________________________________________
Entweder man ist Teil der Lösung oder Teil des Problems.

TS-Development

unregistriert

18

Sonntag, 10. Januar 2010, 00:48

Alles gemacht aber weil ich dumm bin denke ich jetzt erst daran das es an VS 2010 Beta 2 liegen kann. Aber Trotzdem Danke.

@ All: Man kann es nicht ihn Visual Studio 2010 Beta 1 oder Beta 2 verwenden. Auch nicht das WMP-Control!

n1234n

Hier könnte Ihre Werbung stehen!

Beiträge: 471

Dabei seit: 2. Februar 2009

Hilfreich-Bewertungen: 15

  • Private Nachricht senden

19

Sonntag, 10. Januar 2010, 17:10

Ich hab zum auslesen von mü3 Dateien folgendes hier im Forum gefunden:
[Allgemein] MP3 länge auslesen

  • »eminem« ist männlich

Beiträge: 251

Dabei seit: 10. Dezember 2009

Wohnort: Düsseldorf

  • Private Nachricht senden

20

Sonntag, 10. Januar 2010, 18:49

Ich habe die Lösung, hab es mit zwei Titel Probiert und die Zeit wird jetzt richtig angezeigt, auch die Sekunden werden nicht mehr so angezeigt: 00:5 sondern so 00:05

Lösung:

Visual Basic Quellcode

1
2
        	Dim Länge As String = TimeSpan.FromSeconds(AudioDatei.Duration).Minutes.ToString("00") & ":" & CStr(TimeSpan.FromSeconds(AudioDatei.Duration).Seconds.ToString)
        	Dim CurrentPos As String = TimeSpan.FromSeconds(AudioDatei.CurrentPosition).Minutes.ToString("00") & ":" & (TimeSpan.FromSeconds(AudioDatei.CurrentPosition).Seconds.ToString("00"))


Am ende fehlt einmal bei AudioDatei.Duration).Seconds ein ToString und bei AudioDatei.CurrentPosition).Seconds.ToString muss das genauso, aber dann muss das enden mit ToString("00"))

Damit die Sekunden richtig dargestellt werden, ich hoffe das klappt bei euch auch so...
MFG
EMINEM
_______________________________________________
Entweder man ist Teil der Lösung oder Teil des Problems.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »eminem« (10. Januar 2010, 20:46)


Social Bookmarks