BASS UDF - voiceserver

  • howdyho leute..

    ich wende mich hier an euch weil ich einfach nicht weiterkomme!
    was ich vorhabe(sollte zwar vom titel entnehmbar sein aber trotzdem) ist das ich aufgenommene daten zu einem server schicke und zu einem empfänger geschickt wird.
    das habe ich auch schon vollbracht... aber:

    ich möchte das mehr wie eine konferenz händeln lassen .. deshalb versuche ich die empfangenen daten von allen sendern beim server in einen stream zu mixen und erst dann allen clienten zu senden. allerdings funktioniert das irgendwie nicht =/

    nachdem ich die daten zusammen mixe, muss ich die daten da erst wieder irgendwie codieren(z.b. mit der lame.exe) wie nach dem aufnehmen der daten?
    muss ich sonst irgendwas beachten?

    ich würde euch den code gerne senden aber das wäre ne ziemliche fummelarbeit da ich das alles ziemlich verschachtelt habe^^

    mfg
    sgtigram

    Einmal editiert, zuletzt von SgtIgram (26. März 2013 um 07:19)


  • ich würde euch den code gerne senden aber das wäre ne ziemliche fummelarbeit da ich das alles ziemlich verschachtelt habe^^

    mfg
    sgtigram

    Versuchs doch zumindest mal...wir sind ein Entwicklerforum und ich glaube nicht, dass es viel schlimmer sein kann als ALLES was hier sonst schon so alles gepostet wurde ;)
    Ausserdem würd ich dir vorschlagen den Code mal zu entwirren...leicher für uns, ausserdem...vieleicht kommst du dann ja doch noch selbst darauf ^^

    Bild1: Ich beim debuggen

  • ich kanns auch eher sooo sagen,

    ich mach ein spiel das komplett multiplayer basierend ist... sowas wie den kompletten client geschweige denn server code zu senden wäre eher kontraproduktiv punkto sicherheit ;D

    ich hatte zwar vor mir die mühe zu machen alles rauszuziehn aber für diese uhrzeit ist das ein wenig zu viel...

    abgesehn davon richtet sich das problem sowieso nur an jemanden der sich mit BASS gut auskennt wozu auch das senden/empfangen der daten gehört...

    da der client bei einer urgestein-telefonzentrale-ähnlichen verknüpfung (client=>client) auf dem server ja funktioniert(sowohl senden als auch die gesendeten daten fehlerfrei zu empfangen) nur das zusammenbringen von mehr als 2 clienten probleme bereitet liegt es ja eh nur am serverpart

    für jeden user der sich einloggt wird ein stream erstellt auf dem die empfangen daten gesammelt werden(bis dahin läuft alles fehlerfrei und die daten KÖNNTEN auch abgespielt werden in der theorie ;D)

    [autoit]

    _BASS_Mixer_StreamCreate(44100, 2,0)

    [/autoit]

    der channel wird natürlich vorher auch erstellt mit

    [autoit]

    _BASS_Mixer_StreamCreate(44100, 2,0)

    [/autoit]

    wenn dieser user jetzt einen "channel" joint, geht an den server das kommando das er einem channelstream einen userstream hinzufügen soll.. als würde man eine zusätzliche stromquelle in ein netz einspeißen.. ich weiß nicht ob ich beim "kopieren" die falsche funktion verwende aber ich verwende

    [autoit]

    _BASS_Mixer_StreamAddChannel($channelstream, $userstream, $BASS_MIXER_MATRIX)

    [/autoit]

    nachdem die daten aller anwesenden user zusammengewürfelt wurden sollen sie natürlich an alle user gesendet werden, allerdings kommt da nur quatsch raus.. also ein paar bytes mit totalem kauderwelsch

    werden die daten beim einfügen in einem stream decodiert so das ich sie z.b. mit der lame.exe wieder codieren muss bevor ich sie sende oder was mache ich falsch? muss ich da irgendwie mit einem buffer anstatt von einem stream arbeiten?

    es sollte ziemlich klar sein was ich bezwecken möchte und ich bin mir sicher das ich nur einen kleinen stupser in die richtige denkrichtung brauche

    mfg
    sgtigram