Windows Media Player

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Derfuhr.

    Windows Media Player

    HI Leute
    Ich habe 2 Probleme:
    1. Ich habe mehrere Trackbars. Diese sollen als Equalizer dienen. Ich habe im Internet nichts dazu gefunden. Wie kann ich die Lautstärke der bestimmten Hz ändern? ?(
    2. Wie kann ich beim Windows Media Player mehrere Songs abspielen lassen (nicht gleichzeitig :D )?
    Hallo bigcompfan,

    zu1. Soweit ich weiss ist das nicht möglich beim WMP-Plugin.

    zu2. Erstelle eine Playlist und spiele diese ab.

    PSzu1. Falls tatsächlich nicht möglich, schau mal die bass.dll Tutorials hier an,
    damit kannste dann einen MediaPlayer zurechtbasteln, da geht das auch
    mit vielerlei soundeffecten und graphischen EQ. Ich hab mir nen webradio-
    Player damit für 90elf-streams gemacht, finde die LIB interessant obwohl sie
    nicht wirklich Multithreadingfreundlich ist.
    die Bass.dll gibt es hier(bass.net)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Derfuhr“ ()

    bigcompfan schrieb:

    Ich habe mehrere Trackbars. Diese sollen als Equalizer dienen.
    Fouriwertransformation der Musik in 0,1 Sekunden-Intervallen (oder so), die Frequenzbereiche der Transformierten mit den Faktoren der Trackbars multiplizieren, rücktransformieren, abspielen.
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    bigcompfan schrieb:

    Also was genau meinst du?
    Audio-Signal in den Frequenzraum transformieren,
    Frequenzen bereichsweise dämpfen / anheben, zurücktransformieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es wäre doch so simple mit der bass.net.dll:
    [VB.NET] Bass.Dll Tutorial

    (runter Scrollen: Equalizer)
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    ich habe diesen code geschnappt :

    VB.NET-Quellcode

    1. TrackBar1.Text = IIf(0 < 3, 10 - TrackBar1.Value, 20 - TrackBar1.Value)
    2. Dim p As New BASS_DX8_PARAMEQ
    3. Bass.BASS_FXGetParameters(fx(0), p)
    4. p.fGain = TrackBar1.Value
    5. Bass.BASS_FXSetParameters(fx(0), p)

    kann mir bitte jemand erklären wie der funktioniert? was steht für was?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „bigcompfan“ ()

    @bigcompfan:

    Zu deiner playlistfrage:

    VB.NET-Quellcode

    1. Using ofd As New OpenFileDialog
    2. ofd.Multiselect = True
    3. ofd.Filter = "mp3 files (*.mp3)|*.mp3"
    4. If ofd.ShowDialog <> Windows.Forms.DialogResult.OK Then
    5. Return
    6. End If
    7. For Each track In ofd.FileNames
    8. Dim song = AxWindowsMediaPlayer1.newMedia(track)
    9. AxWindowsMediaPlayer1.currentPlaylist.appendItem(song)
    10. Next
    11. End Using
    12. AxWindowsMediaPlayer1.Ctlcontrols.play()


    Da ich diesen Code zufällig kenne kann ich dir ne´kurze erklärung geben.

    Dim p As New BASS_DX8_PARAMEQ ' neue BASS_DX8_PARAMEQ instanz
    Bass.BASS_FXGetParameters(fx(0), p) ' iwo ist ´ne Klasse womit die parameter für fx(0) ausgelesen werden
    p.fGain = TrackBar1.Value ' amplitude für fx(0) wird gesetzt (gugge fx(0) inder Equalizerklasse
    Bass.BASS_FXSetParameters(fx(0), p) ' setzt die neuen Parameter für fx(0)

    wenn ich mit nicht irre müsste die EQ klasse wo du den Code herhast in etwa so aussehen:

    VB.NET-Quellcode

    1. Dim p As New BASS_DX8_PARAMEQ
    2. fx(0) = Bass.BASS_ChannelSetFX(frmPlay.Stream, BASSFXType.BASS_FX_DX8_PARAMEQ, 0) ' den laufenden stream der beeinflusst werden soll
    3. p.fGain = 0 ' setzt aplitude derFrequenz wieder auf 0, macht mann das nicht schrebelst ratz fatz vorhin das getparameters
    4. p.fBandwidth = 36 'bandweite für die Frequenz
    5. p.fCenter = 80 ' die Frequenz die beeinflusstwerden soll
    6. Bass.BASS_FXSetParameters(fx(0), p) ' hier müsste dir wieder fx(0) aufallen


    //nachtrag: alternativ gehts auch ohne zusatzklasse

    VB.NET-Quellcode

    1. Dim param1 As New BASS_DX8_PARAMEQ
    2. param1.fGain = 0
    3. Bass.BASS_FXSetParameters(fx(1), param1)
    4. fx(1) = Bass.BASS_ChannelSetFX(stream, BASSFXType.BASS_FX_DX8_PARAMEQ, 0)
    5. param1.fCenter = 100
    6. param1.fBandwidth = 18
    7. param1.fGain += f100Hz_state 'f 100hzstate Trackbar bezogen
    8. Bass.BASS_FXSetParameters(fx(1), param1)




    Hoffe habe das halbwegs vernünftig erklärt

    mfG

    Derfuhr

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Derfuhr“ ()