Prob mit TCP Sound

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Bigmichi

Betreff: Prob mit TCP Sound

BeitragMo, Sep 13, 2004 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ich möchte auf dem Server eine Mp3 laden und sie dan stückchenweise übertragen und dan der client erfasst die Daten speichert sie in einer file un spielt sie dan aber hab versucht es mit 2 Buffern aber irgendwie klappt da was net Sad

Server
Code: [AUSKLAPPEN]

Graphics 400,200,16,2
SetBuffer BackBuffer()

svrGame=CreateTCPServer(8080)
AppTitle "Server"

IF svrGame<>0 THEN
   PRINT "Server erfolgreich gestartet"
Else
   PRINT "Server konnte nicht gestartet werden"
   END
End If

Global Bytes

WHILE Not KEYHIT(1)

   If Not strStream Then strStream = AcceptTCPStream(svrGame)
   
   
   If strStream <> 0 Then


    B = ReadInt(strStream)

   If B > 0 Then
   AppTitle "Sende"

   file = OpenFile("1.mp3")

   SeekFile(file, B)

      For X = 0 To 10240
      
         WriteByte(strStream,ReadByte(file))

      Next

    B = 0
   AppTitle "Server"

   CloseFile(file)
    strStream = 0
   End If
   
   Else
    strStream = 0
   End If

  Text 10,50,Bytes
 
Flip
Cls

Wend
CloseTCPServer(svrGame)
End()


Client (mit Space startet man den Transfer)
Code: [AUSKLAPPEN]


Global B=1,Bytes = 10240


While Not Ende
 Cls
 Text 10,10,Bytes


 If KeyHit(57) Or W = 1 Then
   strmGame = OpenTCPStream ("127.0.0.1",8080)
   
   
If strmGame<>0 THEN
 WriteInt(strmGame,Bytes) :Anf = 1 : W = 0
Else
   PRINT "Konnte keine Verbindung herstellen"
   WaitKey()
   End
End If
   
   
 End If


 
 
 If Anf = 1 Then
 
If B = 1 Then
file2 = WriteFile("Buffer/1.mp3")
Else
file2 = WriteFile("Buffer/2.mp3")
End If

For X = 0 To 10240

WriteByte(file2,ReadByte(strmGame))
Bytes = Bytes + 1

Next


CloseFile(File2)


If B = 1 Then
S = LoadSound("Buffer/1.mp3") : C = PlaySound(S) : B = 2
Else
S = LoadSound("Buffer/2.mp3") : C = PlaySound(S) : B = 1
End If

;If ChannelPlaying(C) = 0 Then
; If B = 1 Then B = 2 Else B = 1
;End If

Anf = 0
W = 1
 
End If
 
 
 If KeyHit(1) Then Ende = 1

Wend
CloseTCPStream strmGame
End


Villeicht kann mir ja mal jemand helfen =) es klappt ja schonmal das er sehr stotterhaft spielt =)
 

David

BeitragMo, Sep 13, 2004 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

So ein paar grundlegende Dinge könntes du ändern:

Arrow Dateigröße tatsächlich auslesn
Arrow Blockweise schreiben/lesen
Arrow Begin- und End-tag, vor und nach dem Senden der Daten schicken

Wieso du zwei Dateien schreibst, ist mir nicht ganz klar...

grüße
http://bl4ckd0g.funpic.de

Bigmichi

BeitragMo, Sep 13, 2004 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
das is ja nur zum testen dass ich keine dateigröße auslese udn ich schicke ja bklockweise...
Ich wollte es so machen wenn die eine datei gespielt wird wird in die 2 Datei gespeichert wenn die zuende ist dan wechselt er un spielt die 2 ab udn schreibt wieder in die erste -.- also so dublebuffer system klappt aber net Sad
 

David

BeitragMo, Sep 13, 2004 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Code: [AUSKLAPPEN]

WriteByte(file2,ReadByte(strmGame))


DAS ist definitiv kein Byteblock!!

Schaumal hier , da hab ich einen Code geschrieben mit dem man von einem Webserver Dateien downloaden kann. Evtl hilft dir das ja bei deiner Client/Server geschichte!

grüße
http://bl4ckd0g.funpic.de

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group