none
Wave-Datei als Ressourcen-Datei in ein beliebiges Verzeichnis kopieren RRS feed

  • Frage

  • Moin, es ist mal wieder so weit, das nächste Problem.

    Ich möchte bei meinem Programm eine Wave-Datei abspielen. Das klappt solange sie vorhanden ist.

    Wenn sie fehlt, möchte ich diese von meinen Ressourcen aus in das gewünschte Verzeichnis kopieren. Bei einer *.exe-Datei ist mir das bereits gelungen. Bei der Wav-Datei nicht.

    Mein Code-Fragment:

    My.Computer.FileSystem.WriteAllBytes("C:\Test\Sounds\Klick.wav", My.Resources.Klick, append:=False)

    Ich bekomme sinngemäß die Meldung:" Der Wert vom Typ"UnmanagedMemoryStream" kann nicht in "Byte()" konvertiert werden.

    Kann mir jemand sagen, wie es klappt?

    Danke im Voraus.

    Stefan

    Montag, 12. August 2019 15:07

Antworten

  • Hi,

    versuch es mal so:

    Imports System.IO
    Public Class Form1
      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Using ms As MemoryStream = New MemoryStream
          My.Resources.Klick.CopyTo(ms)
          My.Computer.FileSystem.WriteAllBytes("C:\Test\Sounds\Klick.wav", ms.ToArray, False)
        End Using
      End Sub
    End Class

    Du kannst die WAV-Datei auch so abspielen, ohne sie erst zwischenzuspeichern:

    My.Computer.Audio.Play(My.Resources.Klick, AudioPlayMode.BackgroundLoop)
    Gruß

    • Als Antwort vorgeschlagen Florian Haupt Dienstag, 13. August 2019 07:43
    • Als Antwort markiert Sirius32ds Mittwoch, 14. August 2019 13:20
    Dienstag, 13. August 2019 06:48

Alle Antworten

  • Hi,

    versuch es mal so:

    Imports System.IO
    Public Class Form1
      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Using ms As MemoryStream = New MemoryStream
          My.Resources.Klick.CopyTo(ms)
          My.Computer.FileSystem.WriteAllBytes("C:\Test\Sounds\Klick.wav", ms.ToArray, False)
        End Using
      End Sub
    End Class

    Du kannst die WAV-Datei auch so abspielen, ohne sie erst zwischenzuspeichern:

    My.Computer.Audio.Play(My.Resources.Klick, AudioPlayMode.BackgroundLoop)
    Gruß

    • Als Antwort vorgeschlagen Florian Haupt Dienstag, 13. August 2019 07:43
    • Als Antwort markiert Sirius32ds Mittwoch, 14. August 2019 13:20
    Dienstag, 13. August 2019 06:48
  • Hi K,

    vor allen letztere Lösung hat mich begeistert. Dann muss ich auch nicht kopieren ;-)

    Danke

    Stefan


    • Bearbeitet Sirius32ds Mittwoch, 14. August 2019 13:22
    Mittwoch, 14. August 2019 13:21