AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Voice-/Sprach-Chat

Offene Frage von "onepiecefreak2"
Ein Thema von onepiecefreak2 · begonnen am 13. Jun 2014 · letzter Beitrag vom 20. Jun 2014
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
onepiecefreak2

Registriert seit: 13. Jun 2014
50 Beiträge
 
#31

AW: Voice-/Sprach-Chat

  Alt 17. Jun 2014, 22:14
Danke erstmal dafür Aphton.

Nun mein 2. Problem mit deiner Annwendung. Ich versuche im Moment alles aufzuspalten, um deinen Code über 2 separate Formen, eine für den Server und eine für den Client, zu packen. Bis auf das Hauptprogramm, an dem ich gerade sitze. In diesem befindet sich diese Zeile:
if Client.ReceiveLength > 0 then und diese:
if Accept.ReceiveLength > 0 then Deren Bedeutung ist mir durchaus bewusst, aber das Programm meint zu diesen Zeilen folgendes:
[Fehler] Unit1.pas(242): Undefinierter Bezeichner: 'ReceiveLength'

Ich habe deinen Code bis jetzt 1:1 übernommen und ihn auch schon mehrmals durchgeschaut. Es gibt keine Deklaration für ReceiveLength. Zumal ja nichts ungewöhnliches, da ReceiveLength zu einem Befehlaufruf gehört. Aber warum kennt Delphi diesen Befehl nicht? Oder funktioniert ReceiveLength nur in einer Konsolenanwendung?

Danke im Vorraus.

P.S: Liegt es an der Samplerate von 'nur' 11025, dass der Ton ruckelt? Ich habe es mal mit mir selbst getestet (da ich mich nämlich auch selbst hören kann ^^) und habe festgestellt, dass es hier und da einfach mal zu Aussetzern kommt. Das sind sicher diese verlorenen Daten, die ja vermieden werden sollen.

Geändert von onepiecefreak2 (17. Jun 2014 um 22:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#32

AW: Voice-/Sprach-Chat

  Alt 17. Jun 2014, 22:42
Wirf einen Blick in die aphtonSocket.pas, dann springt es dich an ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
onepiecefreak2

Registriert seit: 13. Jun 2014
50 Beiträge
 
#33

AW: Voice-/Sprach-Chat

  Alt 17. Jun 2014, 23:24
Also ist der Fehler auch auf die .pas zurückzuführen? Naja, konnt' ich mir ja gleich denken.
  Mit Zitat antworten Zitat
onepiecefreak2

Registriert seit: 13. Jun 2014
50 Beiträge
 
#34

AW: Voice-/Sprach-Chat

  Alt 17. Jun 2014, 23:57
So ein paar neue Fehler:
IF ReceiveBuffer.Size >= WaveHdr.dwBufferLength THEN BEGIN Move(Pointer(Integer(ReceiveBuffer.Memory) + WaveHdr.dwBufferLength)^,ReceiveBuffer.Memory^, ReceiveBuffer.Size - WaveHdr.dwBufferLength); ReceiveBuffer.Size := ReceiveBuffer.Size - WaveHdr.dwBufferLength; Fehler: "Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert"

BytesSent := Client.SendBuffer(SendBuffer.Memory^, Min(SND_RCV_SIZE, SendBuffer.Size)) Fehler: "Undefinierter Bezeichner: 'SendBuffer'"
Fehler: "Nicht genügend wirkliche Parameter" (Nach 'SendBuffer.Memory^')

Delphi-Quellcode:
IF Assigned(Client) THEN
   BytesSent := Client.SendBuffer(SendBuffer.Memory^, Min(SND_RCV_SIZE, SendBuffer.Size))
   ELSE BytesSent := Accept.SendBuffer(SendBuffer.Memory^, Min(SND_RCV_SIZE, SendBuffer.Size));
IF BytesSent > 0 THEN BEGIN
Fehler: ';' erwartet, aber 'IF' gefunden (Dabei waren die letzte und vorletzte Zeile markiert)

Hier nochmal der komplette Code zu den ganzen Fehlermeldungen:
Delphi-Quellcode:
// Extraction of wavehdrs
IF ReceiveBuffer.Size >= WaveHdr.dwBufferLength THEN BEGIN
   Move(ReceiveBuffer.Memory^, WaveHdr.lpData^, WaveHdr.dwBufferLength);
   Move(Pointer(Integer(ReceiveBuffer.Memory) + WaveHdr.dwBufferLength)^,ReceiveBuffer.Memory^, ReceiveBuffer.Size - WaveHdr.dwBufferLength);
   ReceiveBuffer.Size := ReceiveBuffer.Size - WaveHdr.dwBufferLength;
   ReceiveBuffer.Seek(0, soFromEnd);
   SendToPlayerThread();
   END;
end;

procedure processSendBuffer();
VAR BytesSent: Integer;
begin
IF Assigned(Client) THEN
   BytesSent := Client.SendBuffer(SendBuffer.Memory^, Min(SND_RCV_SIZE, SendBuffer.Size))
   ELSE BytesSent := Accept.SendBuffer(SendBuffer.Memory^, Min(SND_RCV_SIZE, SendBuffer.Size));
IF BytesSent > 0 THEN BEGIN
   Move(Pointer(Integer(SendBuffer.Memory) + BytesSent)^,SendBuffer.Memory^, SendBuffer.Size - BytesSent);
   SendBuffer.Size := SendBuffer.Size - BytesSent;
   SendBuffer.Seek(0, soFromEnd);
   END;
end;
Also ich komm mir immer dümmer vor. Ich habe nun aber auch keine Möglichkeit mehr etwas hinzuzufügen, außer Aphton hat noch eine .pas oder so vergessen. Wäre toll, wenn ihr mir bei der Fehlersuche helfen würdet... vorallem Aphton ^^
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#35

AW: Voice-/Sprach-Chat

  Alt 18. Jun 2014, 05:26
Der erste Fehler mit dem Vorzeichen kannste ignorieren, da der Compiler die Datentypen sowieso selber anpasst. Das sollte kein Fehler sondern eine Warnung sein.


Alle folgenden Fehler basieren darauf, dass du die aphtonSocket Pascal-Datei nicht in der Uses hast bzw. auch nicht im selben Ordner.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#36

AW: Voice-/Sprach-Chat

  Alt 18. Jun 2014, 05:29
P.S: Liegt es an der Samplerate von 'nur' 11025, dass der Ton ruckelt? Ich habe es mal mit mir selbst getestet (da ich mich nämlich auch selbst hören kann ^^) und habe festgestellt, dass es hier und da einfach mal zu Aussetzern kommt. Das sind sicher diese verlorenen Daten, die ja vermieden werden sollen.
Der Ton sollte nicht ruckeln, vorallem deswegen, weil zwei Puffer per WaveIn abwechselnd an das System zur Aufnahme überreicht werden - das ganze in nem Thread völlig ungestört.
Vlt hast du da ja etwas geändert, könnte daran liegen.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#37

AW: Voice-/Sprach-Chat

  Alt 18. Jun 2014, 06:02
[off topic]

Wie war da jetzt nochmal?

Zitat von Aphton:
Ich versteh nicht, warum das jeder so verkompliziert. Ist im Grunde doch ganz einfach - Windows bietet einem bereits alles an, was man braucht: Sockets + WaveIn/WaveOut Funktionen
Ich meine, schön und gut, du lieferst ihm eine fertige Lösung, für deren Verwendung und Einsatz der TE nix weiter dazulernen und die er auch nicht verstehen muß – wenn sie denn funktionieren würde. Ob das nachhaltig ist, darf bezweifelt werden ...

Da fragt man sich doch öfter mal, worum's eigentlich geht: Daß der Fragesteller eine Lösung erarbeiten kann oder daß sich Hilfsbereite gegenseitig im Anbieten der besseren Lösung ausstechen. Was glaubst du wohl, weshalb der TE nun auf deine Lösung eingeht? Ganz einfach: Weil der glaubt, das ohne weiteren Hirnschmalz einsetzen und als eigene Lösung ausgeben zu können – er nimmt einfach den Weg des scheinbar geringsten Widerstandes. Also ich bin da jetzt endgültig raus ...

[/off topic]
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#38

AW: Voice-/Sprach-Chat

  Alt 18. Jun 2014, 07:45
[off topic]

Wie war da jetzt nochmal?

Zitat von Aphton:
Ich versteh nicht, warum das jeder so verkompliziert. Ist im Grunde doch ganz einfach - Windows bietet einem bereits alles an, was man braucht: Sockets + WaveIn/WaveOut Funktionen
Ich meine, schön und gut, du lieferst ihm eine fertige Lösung, für deren Verwendung und Einsatz der TE nix weiter dazulernen und die er auch nicht verstehen muß – wenn sie denn funktionieren würde. Ob das nachhaltig ist, darf bezweifelt werden ...

Da fragt man sich doch öfter mal, worum's eigentlich geht: Daß der Fragesteller eine Lösung erarbeiten kann oder daß sich Hilfsbereite gegenseitig im Anbieten der besseren Lösung ausstechen. Was glaubst du wohl, weshalb der TE nun auf deine Lösung eingeht? Ganz einfach: Weil der glaubt, das ohne weiteren Hirnschmalz einsetzen und als eigene Lösung ausgeben zu können – er nimmt einfach den Weg des scheinbar geringsten Widerstandes. Also ich bin da jetzt endgültig raus ...

[/off topic]
Wo bleibt hier die ~"Unschuldsvermutung"?
Wer sagt außerdem, dass man nur durch Erarbeiten einer Lösung etwas lernen kann? Man kann genauso gut auch durch das analysieren einer Lösung etwas - oder, wenn man Neuling ist, viel mehr lernen. Das kann ich zumindest von mir behaupten!
Ob man es tut oder nicht, ist einem selbst überlassen - nicht dir. Ob der TE was lernt oder nicht, wird auf langer Sicht ihn positiv/negativ beeinflussen.

Ich war übrigens lange Zeit deiner Ansicht, dass hat sich aber geändert - ich weiß vorallem wegen meiner Uni, dass man von Lösungen auch etwas lernen kann. Viele Sachen sind vlt. zu trocken und man kann sich praktisch nichts drunter vorstellen, bis einem gezeigt wird, dass man z.B. damit alles so anstellen kann. Dann machts klick. Danach kann man nochmal zurück zur Theorie und versteht dann einige Definitionen usw. viel besser.
Man darf das ganze nicht als eine Einbahnstraße sehen..

Achja, noch etwas war mir hier auf der DP aufgefallen ist - ist also nicht an dich speziell gerichtet, aber als Beispiel nehm ich da mal etwas von dir:
Zitat von Perlsau:
Jetzt soll's plötzlich ein Video-Chat sein? Junge Junge ... Jetzt mach doch mal langsam und gehe einen Schritt nach dem anderen
Zunächst einmal, es ist mir bewusst, dass du davon ausgehst, dass der TE einfach ein "Neuling" ist. Der Rat ist auf erstem Blick vlt. gut gemeint - es hilft den meisten Neulingen auf dem Boden zu bleiben usw.
Das ganze ist trotzdem richtig demotivierend und herablassend. Du kannst nie genau wissne, wozu jemand in der Lage ist.
Ich bin in letzter Zeit öfters auf gamedev unterwegs und da tauchen auch immer Threads auf wo dann gefragt wird, wie bestimmte eig. rel. komplexe Rendertechniken implementiert werden können. Da sind die ersten Meldungen nicht "Junge Junge".. Die gehen da direkt auf die Theorie ein und erklären grob alle Schritte, die gemacht werden müssen, um das Ziel zu erreichen. Ganz egal, wie komplex das Thema ist und wie "grün" der TE klingt.
Verlinkt wird auch, ohne vorher die Person zu beschimpfen, dass nicht ordentlich gesucht wurde. Und siehe da, nach einigen Tagen sieht man dann im selben Thread schöne Resultate und jeder ist zufrieden! Ich finde das viel professioneller!
(Ok, komplette Lösungen wie von mir, werden vlt nicht oft gepostet Das tue ich aber, weil mir langweilig ist, ich Zeit habe und am Thema interessiert bin..)

Ich kann mich noch genau erinnern, wie einer meinte, ich sollte es mit dem Programmieren sein lassen, als ich hier eine meiner ersten Projekte veröffentlichte. Das habe ich bis dato nicht vergessen! Ich finde solches Verhalten unakzeptabel.
Mich kotzts fast schon an >.> Wollt ich mal kurz loswerden Daher meine Bitte - seid nicht so.
(Hiermit will ich übrigens nicht sagen, dass ich HÜs für andere machen OK finde. Da sollte ein feiner Unterschied erkennbar sein.)

/Offtopic
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#39

AW: Voice-/Sprach-Chat

  Alt 18. Jun 2014, 08:21
Ich finde solches Verhalten unakzeptabel.
Mich kotzts fast schon an >.> Wollt ich mal kurz loswerden Daher meine Bitte - seid nicht so.
/Offtopic
Gruß, Jo
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#40

AW: Voice-/Sprach-Chat

  Alt 18. Jun 2014, 09:01
Mein lieber Aphton,

deine Einwände sind akzeptabel und verständlich, wenngleich ich vieles wohl doch anders sehe als du. Für mich heißt entwickeln eben nicht kopieren, sondern – um es mal bildlich auszurücken – das Knäuel an Informationen und irreführenden Vorstellungen in meinem Hirn ent-wickeln, auf daß die Informationsmenge übersichtlich und anwendbar wird.

Auch ich habe nicht vergessen, wie das als Anfänger war, und auch ich hatte wie wohl die meisten Programmierer hochtrabende Vorstellungen und Ziele, die ich aufgrund mangelnder Erfahrung nicht umsetzen konnte. Nachdem ich das erkannt hatte – denn dieser Weg führte in eine Sackgasse –, schraubte ich meine Ziele drastisch herunter und begann quasi noch einmal von vorne, auch weil ich zuvor mit Turbo Pascal gearbeitet hatte und vieles davon in Windows nicht mehr zu gebrauchen war. Ich arbeitete mich durch etliche Einsteiger-Bücher und -Tutorials, begann mit einfachsten Anwendungen wie Adressverwaltung mit typisierten Dateien usw. Erst ein paar Jahre nachdem ich mit Delphi 3 regelmäßig geübt hatte, war ich in der Lage, meine erste semi-professionelle Anwendung zu entwickeln (Veranstaltungs- und Mitgliederverwaltung für einen überregional organisierten Künstlerinnen-Verein mit Delphi 7 personal). Ich benötigte für die beiden Programme fast ein Jahr, was ich heute in ein paar Wochen erledigen könnte (Datenbank, Chart-Komponente, mehr Übung).

Allzu oft erlebe ich hier und in anderen Delphi-Foren jedoch, daß es den Fragestellern einzig darum geht, irgend einen zu finden, der ihnen den Code schreibt. Sicher, man kann diese Einschätzung als überheblich und arrogant etikettieren, was auch häufig geschieht, weil jeder dieser Kandidaten verständlicherweise versucht, den Eindruck zu verwischen, er habe eigentlich kein echtes Interesse am Programmieren, sondern möchte nur eine Copy'n'Paste-Lösung, egal wie. Oft sind diese Leute dann nicht mal in der Lage, die angebotenen Lösungen auch umzusetzen, eben genau so, wie es unser TE hier vorführt. Ich wäre damals als Anfänger auch nicht unbedingt in der Lage gewesen, komplexen Code für so umzubauen, daß er meinen eigenen Anforderungen genügt oder gar selbst Code für komlexere Anwendungen zu entwickeln. Dafür mußte ich mich erst mühevoll einarbeiten, das hat viel Zeit und Ausdauer erfordert, zumal ich mit meinen 53 Jahren auch nicht mehr der Jüngste bin. Mir wäre, nachdem mir damals mein Anfängerstatus richtig bewußt geworden war, nicht im Traum eingefallen, z.B. einen Chat schreiben zu wollen oder eine komplexe Datenbank-Anwendung oder eine Sound- und Video-Bearbeitung.

Aus den genannten und einigen weiteren ungenannten Gründen (z.B. wenn ich sehe, daß ein User nicht mal weiß, daß man Klassen, die man verwenden will und die sich in eigenen Units befinden, in die Uses einbinden muß: das ist Basiswissen!) finde ich mein Vorgehen bzw. meine Reaktion auf bestimmte Usertypen nicht wirklich ungerechtfertigt oder inakzeptabel. Auch scheine ich nicht der einzige zu sein, dem es so ergeht bzw. der so empfindet, nur traut sich das offenbar kaum noch einer zu sagen, weil hier schon derart heftige Angriffe, die bis zur weinerlichen Anklage gingen, gefahren wurden. Das schreckt natürlich ab, und genau das war und ist auch der Zweck solcher Angriffe. Und nein, ich fühle mich nicht von dir angegriffen, du bleibst in deiner Argumentation sachlich und freundlich, auch wenn du Kritik äußerst. Das ist für mich akzeptabel und durchaus erwünscht. Doch letztendlich plädierst du dafür, daß man sich immer die Zeit nehmen soll, ausnahmslos jedem immer alles haarklein zu erklären, auch wenn man den Eindruck hat, daß die Erläuterungen nicht mal im Ansatz verstanden werden oder daß erst gar kein echtes Interesse besteht. Das kannst du ja machen, davon hält dich keiner ab, aber solltest du dann nicht auch akzeptieren, daß andere die Sache vielleicht anders sehen?

Geändert von Perlsau (18. Jun 2014 um 09:10 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz