AGB  ·  Datenschutz  ·  Impressum  







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

VoIP mit Delphi?

Ein Thema von user47511 · begonnen am 15. Mär 2009 · letzter Beitrag vom 26. Mär 2009
Antwort Antwort
danu1104

Registriert seit: 4. Dez 2006
75 Beiträge
 
Delphi 2006 Personal
 
#1

Re: VoIP mit Delphi?

  Alt 26. Mär 2009, 03:27
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] = 'GetVoicethen
  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 ...
Daniel
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz