vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: audio stream in wave speichern 
Autor: Nelson_Mandela
Datum: 10.12.10 14:36

nene, in dem array ist auch der header von der wave datei enthalten.

ich versuchs mal anhand des codes zu erklären, dann ist es bestimmt einfacher zu verstehn.

hiermit erzeuge ich den sinuston:
Public Sub CreateSignalData()
        Dim t As Double         ' aktuelle Zeit
        Dim tStep As Double     ' Schrittweite für Zeit
        Dim w1 As Double        ' Kreisfrequenz linker Kanal    
        Dim w2 As Double        ' Kriesfrequenz rechter Kanal
        Dim nSamples As Integer ' gesamte Sample-Anzahl
        Dim A As Double = 10    ' Amplitude
        Dim Phi As Double       ' Phasenverschriebung
        Dim i As Integer
        Dim aStep As Double     ' Schrittweite für Amplitude
        Dim x As Double
 
        nSamples = CInt(Duration * SamplesPerSecond)
        tStep = 1 / SamplesPerSecond
 
        w1 = myFreq_1 * Pi2
        w2 = myFreq_2 * Pi2
        Phi = Phaseshift * Pi2 / 360
 
        ReDim SoundData(nSamples + 10)
 
 
 
            aStep = 1 / SamplesPerSecond
            For i = 11 To nSamples + 10
                SoundData(i) = CInt(65536 * CInt(A * Math.Sin(w1 * t)) + A * _
                  Math.Sin(w2 * t + Phi))
                t = t + tStep
            Next
 
 
        Call SetHeader(nSamples * 4)
 
End Sub
 
Private Sub SetHeader(ByVal nBytes As Long)
        Blockalign = CShort(Channels * BitsPerSample / 8)
        SoundData(0) = 1179011410   ' Riff
        SoundData(1) = CInt(nBytes + 36)  ' Länge
        SoundData(2) = 1163280727   ' Wave
        SoundData(3) = 544501094    ' fmt
        SoundData(4) = 16           ' immer 16 (auch bei 8 Bit-Sound)
        SoundData(5) = Channels * 65536 + 1 ' 65536 verschiebt einen Kanal um 
        ' 16 Bit nach links
        SoundData(6) = SamplesPerSecond
        SoundData(7) = SamplesPerSecond * Blockalign
        SoundData(8) = BitsPerSample * 65536 + Blockalign
        SoundData(9) = 1635017060   ' "DATA"
        SoundData(10) = CInt(nBytes)      ' Datenlänge in Byte
    End Sub
soundData enthält jetzt alle infos für die wave datei.
bisher habe ich dann so weitergearbeitet :

Private myFreqStream As New IO.MemoryStream
Private myStreamWriter As New IO.BinaryWriter(Me.myFreqStream)
 
Public ReadOnly Property FreqStream() As IO.Stream
        Get
            Me.myFreqStream.Position = 0
            For i As Integer = Me.SoundData.GetLowerBound(0) To _
              Me.SoundData.GetUpperBound(0)
                Me.myStreamWriter.Write(SoundData(i))
            Next
            Return Me.myFreqStream
        End Get
    End Property
und konnte dann mit der klasse:
Public Class Player
    Private WithEvents Player As New System.Media.SoundPlayer()
 
    Public WriteOnly Property AudioData() As IO.Stream
        Set(ByVal value As IO.Stream)
            value.Position = 0
            Me.Player.Stream = value
        End Set
    End Property
 
    Public Sub StartPlay()
        Me.Player.Play()
 
    End Sub
 
    Public Sub StopPlay()
        Me.Player.Stop()
    End Sub
 
 
End Class
den ton abspielen.
das hat auch wunderbar funktioniert.
einziges manko ist, dass der player die lautstärke nicht varieren kann, und jetzt brauche ich einen player, der das kann und diesen stream lesen kann.
oder ich muss den stream irgendwie umgeschrieben kriegen, in ein format, was ein player lesen kann, der auch die lautstärke anpassen kann während des abspielens.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
audio stream in wave speichern3.445Nelson_Mandela09.12.10 17:18
Re: audio stream in wave speichern2.535ModeratorDaveS09.12.10 20:27
Re: audio stream in wave speichern2.658Nelson_Mandela10.12.10 00:36
Re: audio stream in wave speichern2.755ModeratorDaveS10.12.10 12:41
Re: audio stream in wave speichern2.491Nelson_Mandela10.12.10 14:36
Re: audio stream in wave speichern2.536ModeratorDaveS10.12.10 15:02
Re: audio stream in wave speichern2.471Nelson_Mandela10.12.10 15:13
Re: audio stream in wave speichern2.552ModeratorDaveS10.12.10 15:18
Re: audio stream in wave speichern2.577Nelson_Mandela10.12.10 22:53

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel