soundfiles (.xm) in .exe einbinden

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von dC|ASPiRiNiTy.

    soundfiles (.xm) in .exe einbinden

    hallo liebe user :>

    ich habe ein programm gebaut, und möchte nun ein lied einbinden (in formload_1)
    mit .wav klappts ja, dass weiß ich und hab sauch schon hinbekommen, aber da wav ziemlich groß ist und das die exe nur unnötig aufpumpt, möchte ich die originale .xm datei drin haben.

    ich habe natürlich schon im internet danach geguckt und auch etwas mit einer "bassmod.dll" gefunden, nur irgendwie bekomm ich das noch nicht so ganz hin, kann mir vllt jmd dabei weiterhelfen?
    ich habe die bassmod.dll und die sound.xm als resourcen angegeben...

    naja es wäre nett, wenn mir jemand helfen könnte ^^.
    Dlls werden Referenziert, nicht kopiert (zumindest nicht in die Resourcen)

    Geh in den Reiter "Verweise" und füge dort eine Referenz zur Bassmod.dll hinzu.
    Die Dll musst du dann mit dem Programm mitliefern (durch den AssemblyCompressor kannst du die Dll dann später einkompilieren)
    Erkundige dich, ob du die "Bassmod.dll" überhaupt weiterverbreiten darfst und unter welchen Umständen.
    hba nu bei "project>>> add reference" und dann auf browse gemacht, dann die bassmod.dll ausgesucht, doch dann hab ich n error bekommen:
    "A reference to "c:\docs & sets\username\desktop\folder\bassmod.dll" could not be added. please make sure that the file is accessible, and that it is a valid assembly or COM component."
    "Please make sure, that it is a valid Assembly or COM Component"
    -> Stelle sicher, dass die DLL überhaupt gültig ist (Kopierfehler etc.) und dass VS leserechte auf die Datei hat (bei Desktop wahrscheinlich. guck mal nach evtl. FileSystem Lock z.B. mit Unlocker)
    geht iwie immernoch net, hab alles nomma neu geladen aber immernoch der gleiche error.


    edit:

    oder würde es mit einer mp3 datei evtl leichter gehen? als mit einer .xm datei? :/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dC|ASPiRiNiTy“ ()

    ^^

    Da nehmen die zwar meistens MIDIs, * aber die machen das wahrscheinlich via DirectSound und einem SoundBuffer, der die Resource als Stream liest.
    Hierzu Google (Resource GetStream(), MDX SoundBuffer)

    * Fehlinformation. Ich entschuldige mich. (Danke an Samus Aran)

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

    danke ^^ ich werd mich mal über getstream bei google informieren ^^.


    edit:

    ich find bei google iwie nicht genau sowas wie ich dafür suche, also das er die xm (oder mp3) als stream laufen lässt.

    hjap me please :/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dC|ASPiRiNiTy“ ()

    cool danke xd


    also ich hab nu versucht das ganze n bissl zu "umgehen"...
    habe n win.med.player eingefügt (visible = false), und der soll nun gleich beim start des programms die xm datei abspielen..
    habe das so versucht:


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Start() 'opacity skript (langsames einblenden)

    AxWindowsMediaPlayer1.URL = "My.Resources.FFF.xm" 'FFF.xm ist der name, der soundfile
    AxWindowsMediaPlayer1.Ctlcontrols.play()

    TrackBar1.Minimum = 10 'opacity trackbar
    TrackBar1.Maximum = 100 'opacity trackbar
    TrackBar1.Value = 100 'opacity trackbar
    End Sub


    nur der lümml will kein sound von sich geben.... hat wer n schimmer was da falsch ist?
    mhmm das mit den ganzen .dll und so is mirn bissl to heavy,,.....

    ich werrd das vieh einfach veruchn zu konvertieren ^^.....
    dann mit mp3 versuchen :P


    edit:
    habs nu mit mithiölfe eines konverters zur mp3 konvertiert,..

    aber des prog spielt immernoch kein lied ab ...


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Start()


    AxWindowsMediaPlayer1.URL = ("My.Resources.ASP") '.mp3 name ist ASP= ASP.mp3
    AxWindowsMediaPlayer1.Ctlcontrols.play()


    TrackBar1.Minimum = 10
    TrackBar1.Maximum = 100
    TrackBar1.Value = 100
    End Sub




    hab das gefühl das aber eigentlich nichtmehr so viel falsch sein kann =o

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „dC|ASPiRiNiTy“ ()

    WOHOOOOO habs geschaft!!!
    ist aber leider alles im temp ordner bzw die mp3^^, wird aus den resourcen in den temp ordner kopiert, und von da dann mit einem "AxWindowsMediaPlayer" player abgespielt, welche selber unsichtbar ist!



    CODE:


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Start()
    IO.File.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Temp & "\ASP.mp3", My.Resources.ASP)

    AxWindowsMediaPlayer1.URL = My.Computer.FileSystem.SpecialDirectories.Temp & "\ASP.mp3"

    AxWindowsMediaPlayer1.Ctlcontrols.play()


    TrackBar1.Minimum = 10
    TrackBar1.Maximum = 100
    TrackBar1.Value = 100
    End Sub




    gibts da wohl noch elegantere lösungen?



    edit:
    mist >,<
    wenn ich die generierte exe aus dem bin/release ordnber nehm und sie starten will bekomm ichn error...

    muss ich die:
    AxInterop.WMPLib.dll
    Interop.WMPLib.dll
    dateien auch irgendwie in die exe einbinden?