Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi VoIP mit Delphi? (https://www.delphipraxis.net/130912-voip-mit-delphi.html)

user47511 15. Mär 2009 16:56


VoIP mit Delphi?
 
Hallöle...
Wollte mal Fragen ob es möglich ist, mit Delphi ein Voice over IP Programm zu programmieren.
Das stell ich mir vom Aufbau einfach vor... Es soll einen "Raum" geben in dem alle reden können,
ausserdem noch ein Settings Menü in dem man alles mögliche einstellen kann (Lautstärke, Mikrofon-Empfindlichkeit...)

toms 15. Mär 2009 16:58

Re: VoIP mit Delphi?
 
Zitat:

Zitat von .Bartipapi
Wollte mal Fragen ob es möglich ist, mit Delphi ein Voice over IP Programm zu programmieren.

VoIP+Delphi

user47511 15. Mär 2009 17:00

Re: VoIP mit Delphi?
 
Danke
Hab vorhin schon gegooglet aber nicht auf die Ergebnisse geachtet

DeddyH 15. Mär 2009 17:09

Re: VoIP mit Delphi?
 
Zitat:

Zitat von .Bartipapi
Danke
Hab vorhin schon gegooglet aber nicht auf die Ergebnisse geachtet

Sehr sinnig :lol:

Die Muhkuh 15. Mär 2009 17:40

Re: VoIP mit Delphi?
 
Skype wäre eins ;)

blablab 18. Mär 2009 23:54

Re: VoIP mit Delphi?
 
skype ist in delphi geschrieben???

Dunkel 19. Mär 2009 05:04

Re: VoIP mit Delphi?
 
Zitat:

Zitat von blablab
skype ist in delphi geschrieben???

Ja.

generic 19. Mär 2009 08:49

Re: VoIP mit Delphi?
 
Teamspeak ist auch in Delphi und die Linux Variante in Kylix.

MSSSSM 20. Mär 2009 15:56

Re: VoIP mit Delphi?
 
MediaMonkey ist auch in Delphi geschrieben.

Und ich habe mich letztens gewundert, warum in den Teamspeak HTTP-Headern stand:

...
Server: Indy 9.0.27
...

Es sind mehr Programme in Delphi geschrieben als man denkt :D

Marius

danu1104 26. Mär 2009 03:27

Re: VoIP mit Delphi?
 
Ich würde dafür die Bass kompo nehmen und die Indy.

Player1:
Mit der Bass dem Stream erstellen oder aufnehmen und den stream dann mit Indy TCP /UDP versenden.

Player2:
Stream Empfangen und abspielen.


Versucht mal mehr nicht - kommerzielle wege zu gehn, so lernt man einfach besser mit der IDE
umzugehen. Probiern geht ÜBER studiern.

Also einfach IDE öffnen und versuchen.

Von VoIP komponente halte ich persönlich nicht viel da es meisten demos sind oder fertige ActiveX kompos die schweine geld kosten. Und in der sache bin ich sowieso sehr eigen.

Erstell einfach mal zum Test einen Bass Stream also mit ner MP3 und versuch den einfach zu senden und auf dem anderen (PC) zu empfangen.

Die antworten vonwegen es gibt doch skype oder TS2 finde ich net so toll, die leute fragen ja nicht ob es sowas gibt um einen Link zu erhalten, sonder sie möchtn evtl mal selber sowas baun, und suchen einen weg.



Delphi-Quellcode:
// Server (Port 11)
procedure TForm1.EmpfaengerExecute(AContext: TIdContext);
Var Stream:hStream;

    FStream:TFileStream;
    InetVoIStream:TIDStreamVCL;

begin

Delmtext.Delimiter:=',';
if ACOntext.Connection.Connected then
   begin
 
  DelmText.DelimitedText:=ACOntext.Connection.IOHandler.ReadLn;
  if DelmText.Strings[0] = 'GetVoice' then
  begin
   fStream := TFileStream.Create(DelmText.Strings[1],fmopenwrite or fmCreate);
   InetVoIStream:=TIDStreamVCL.Create(fStream);
   try

     ACOntext.Connection.IOHandler.ReadStream(InetVoIStream);
     FreeAndNil(fStream);
     FreeAndNil(InetVoIStream);
   finally
     
     ACOntext.Connection.Disconnect;
     
   try
     stream:=bass.BASS_StreamCreateFile(false,Pchar(DelmText.Strings[1]), 0 ,0, BASS_SAMPLE_SOFTWARE);
    finally
     if not(stream =0) then
     Bass_channelPlay(stream,false);
     end;
   end;
  end;
 end;


end;
// Client (Port 10)
procedure TForm1.Button1Click(Sender: TObject);
Var
    fStream:TFileStream;
    InetVoIStream:TIDStreamVCL;
    Path:String;
begin
if not Sender0.Connected then Sender0.Connect('localhost',11);
  if OpenDialog1.Execute then
    With Sender0.IOHandler do
     begin

      WriteLn('GetVoice,'+'test.mp3');
      Path := OpenDialog1.FileName;
      fStream := TFileStream.Create(Path, fmOpenRead or fmShareDenyNone);

      InetVoIStream:=TIDStreamVCL.Create(fStream);
        WriteBufferOpen;
          Write(InetVoIStream);
        WriteBufferClose;
      FreeAndNil(fStream);
    end;
 end;

procedure TForm1.EmpfaengerStatus(ASender: TObject;
  const AStatus: TIdStatus; const AStatusText: String);
begin
  Memo1.Lines.Add(AStatusText)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 DelmText:=TStringlist.Create;
end;
So wie da funktioniert es, was ich leider nicht geschaft habe ist den Stream wieder freizugeben um ihn sofort abzuspielen, Das Prinziep ansich funzt. Ich bin auch kein Pro habe es mal ungeniert mal hingeklatscht.

Wie gesagt, die datei (stream) wird versendet und kommt auch an, nur ich krieg den Stream nicht frei ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr.
Seite 1 von 2  1 2      

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