vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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 - Fortgeschrittene
Re: mp3-Radio-Stream hören aber wie? Teil 4 
Autor: burny
Datum: 13.05.07 15:01

'--------------------------------Fortsetzung 
' clsFIFOStack---------------------------
        ''' <summary>
        ''' Hängt ein Array an den Puffer an
        ''' </summary>
        ''' <param name="b">Das anzuhängende Array</param>
        ''' <param name="startindex">Der Startindex im Array</param>
        ''' <param name="length">Die Länge im Array</param>
        ''' <remarks></remarks>
        Public Sub Push(ByRef b() As T, Optional ByVal startindex As Integer = _
          0, Optional ByVal length As Integer = 0)
            Dim oldlen As Integer
 
            If length = 0 Then length = b.Length
            If length > b.Length Then length = b.Length
            If length < 0 Then
                Throw New ArgumentOutOfRangeException("length", "Die angegebene" & _
                  "Länge darf nicht negativ sein!")
            End If
            If startindex + length > b.Length Then Exit Sub
            If blockop Then waitforunlock()
            blockop = True
            oldlen = stack.Length
            Array.Resize(stack, stack.Length + length)
            Array.Copy(b, startindex, stack, oldlen, length)
            blockop = False
        End Sub
 
        ''' <summary>
        ''' Leert den Puffer.
        ''' </summary>
        ''' <remarks></remarks>
        Public Sub Flush()
            Array.Resize(Of T)(stack, 0)
        End Sub
        ''' <summary>
        ''' Fügt an einer bestimmten stelle ein array ein
        ''' </summary>
        ''' <remarks></remarks>
        Public Sub Insert(ByRef b() As T, ByVal index As Integer, Optional _
          ByVal length As Integer = -1)
            Dim temparray1() As T = Nothing
            Dim temparray2() As T = Nothing
            Dim result() As T = Nothing
 
            If length = -1 Then
                length = b.Length
            End If
            If length > b.Length Then length = b.Length
            Array.Copy(stack, 0, temparray1, 0, index)
            Array.Copy(stack, index, temparray2, 0, stack.Length - index)
            Array.Resize(Of T)(result, temparray1.Length + temparray2.Length + _
              length)
            Array.Copy(temparray1, result, temparray1.Length)
            Array.Copy(b, 0, result, temparray1.GetUpperBound(0) + 1, length)
            Array.Copy(temparray2, 0, result, b.GetUpperBound(0) + _
              temparray1.GetUpperBound(0) + 1, temparray2.Length)
            stack = result
        End Sub
 
        Public Function FindIndex(ByVal Item As T, Optional ByVal StartIndex As _
          Integer = 0) As Integer
            Dim i As Integer
            If stack.Length > 0 And Not (stack Is Nothing) Then
                For i = stack.GetLowerBound(0) To stack.GetUpperBound(0)
                    If stack(i).Equals(Item) Then Return i
                Next
            End If
            'wenn nichts gefunden wurde
            Return -1
        End Function
        Public Function Contains(ByVal element As T) As Boolean
            For Each item As T In stack
                If item.Equals(element) Then
                    Return True
                End If
            Next
 
            Return False
        End Function
 
        Private Sub waitforunlock()
            Do While blockop
                Threading.Thread.Sleep(1)
            Loop
 
 
        End Sub
 
    End Class
So.
Du brauchst nur eine neue Instanz vom Proxy zu erstellen, mit
Dim sp as New StreamingProxy()
und das ganze mit
sp.startserver()
zu starten.
nun rufst du mit einer neuen Net.TcpClient-Klasse den Stream ab(per HTTP) und immer wenn daten reinkommen(byte-array!) machst du ein
sp.PushData(b)
Sobald sich ein CLient verbindet, werden die Daten weitergeleitet. Du kannst im Listen-Thread noch die eine Zeile nach (...).Accept(....) entkommentieren, dann hört man den stream von beginn an.....
Man kann sich nun mit dem VLC media player nach http://localhost:16800/listen.mp3 verbinden und den stream hören.
Mein Problem ist, dass ich es nicht schaffe, die Streamgeschwindigkeit absolut konstant zu halten, es kommt zu schlechterem sound, störgeräuschen und abrissen beim hören.
Leider klappt es mit Winamp nicht, hat jmd ne idee?

burny
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
mp3-Radio-Stream hören aber wie?1.596Hummelwalker27.04.07 15:34
Re: mp3-Radio-Stream hören aber wie? Teil 11.023burny13.05.07 14:55
Re: mp3-Radio-Stream hören aber wie? Teil 11.096Hummelwalker15.05.07 15:57
Re: mp3-Radio-Stream hören aber wie? Teil 1954burny16.05.07 16:59
Re: mp3-Radio-Stream hören aber wie? Teil 2944burny13.05.07 14:58
Re: mp3-Radio-Stream hören aber wie?929burny13.05.07 15:01
Re: mp3-Radio-Stream hören aber wie? Teil 4968burny13.05.07 15:01

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