|
Great application library.
|
|
|
|
|
Hi Ivar,
Would firstly like to thank you as this library is great and very useful. I am developing an application where there is one server and multiple clients who all listen to what the server has to say. I have got it working so far but have noticed that, through UDP, sometimes packets are dropped or buffered and then they are played back after the connection is re-established. Which is causing a delay between multiple clients. I was wondering if there was a way to disregard any packets that are delayed and to continue playing whatever is coming out at that time. This way even if one client missed some it would not care and would still be playing the same audio data as the rest of the clients.
Kind regards,
Stuart.
|
|
|
|
|
Hi,
>connection is re-established
UDP is connection less so ....
Also default buffer is only ca 40 ms, so there can't be any noticable sound clip in buffer.
Only thing what may happen is when you don't send slience packets and wave-out has not constant data flow, then sound holes may happen.
If you already don't use RTP version, i strongly suggest you use RTP. RTP provides usefull receive/sending reports, it makes debug things easier.
Then also any RTP player(like VLC player) can play your server voice.
|
|
|
|
|
Sorry I should have mentioned it connects via TCP just to let the server know that there are clients waiting for input. I was just asking because I wasn't sure if the code would be able to handle ignoring gaps in data.
|
|
|
|
|
If UDP connection ping times good, there should be no issues.
Also as said use RTP to transfer voice.
|
|
|
|
|
Hi, i'm encountering an error where audio streaming crossfire will occur randomly when there are 2 sessions taking place. my system is created by c# codes, and uses udp to transmit data to multicast ip. both sessions points to same ip but different ports.
|
|
|
|
|
i have been testing your program (RTP audio demo).i am developing an e-learning application which is able to send/receive audio data over internet.can you suggest how to do that.
thank Ivar
|
|
|
|
|
For web application that is harder to implement.
You should use java,activex or WCF to do(host) it.
Otherwise it's same as example app.
|
|
|
|
|
but my application use C# to do it.I Hope i have a good reply and thank for your reply,Ivar.
|
|
|
|
|
This needs IP addresses of both PCs?
Will this work through HTTP? RTP
e.g. Sender => Web Server => Reciever
|
|
|
|
|
Yes you need to know both IPs.
This app won't run on web page ... .
|
|
|
|
|
It is rare that I'd use all caps in an online posting but this piece of epic 'awesomeness-ness (sic)' is what I've been looking for everywhere! My faith in C# has been restored!
Keep up the great work and I will certainly visit more often!
-Ed
|
|
|
|
|
I was looking for good examples of the g711 codec in c# and now I've found. Thanks for sharing this.
__Jack
|
|
|
|
|
Hi Lumi,
I downloaded your code for lumisoft .net library. It seems very good for desktop environment. But I want to make use of RTP APIs in my WINDOWS MOBILE project. I tried referencing this net dll in my code. But it failed(because of different set of environments).
Do you have same RTP library for Windows mobile as well? If not, can you suggest me how will I make use of your dll in Windows mobile environment if possible..
Thanks in advance.
|
|
|
|
|
Hi,
There is no CF version.
>If not, can you suggest me how will I make use of your dll in Windows mobile environment if possible..
You should check out what classes and methods CF doesn't support and rewrite these parts.
|
|
|
|
|
Hi!
I have the same problem.But do not have enough experience to solve by myself.
Can you help(or just advice) to solve the problem with this error:
cannot convert from 'System.Net.IPEndPoint [c:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\System.dll]' to 'System.Net.IPEndPoint []'
|
|
|
|
|
Hi,
This error has not related any way to CF, thats logical .... you never can convert siggle variable to arrya.
Like you cant say:
string aaa = "";
string[] xxx = aaa .....
|
|
|
|
|
I finally got the receiving end of this converted to CF. It's pretty neat. Thanks a lot Ivar. Good stuff there.
BTW, you can't use the codecs on transmit from the mobile. Phones just don't have the processing power in .NET to run it. If you could find some native code to p/invoke, it might work.
|
|
|
|
|
I doubt that there is no POWER of CPU, there must be something elese wron.
A-law U-law takes very minimal CPU.
|
|
|
|
|
I'm just saying...transmitting from mobile phone to regular PC over 3G at 8000, 8, 1, the audio is twitchy when you use either encoding method, but flawless when it's unencoded.
|
|
|
|
|
There must be done more debug, how much CPU normal not encoded eats, may be there some optimisation needed.
Also you run Relesase compiled code ?
|
|
|
|
|
I know I probably need to debug it some more, but I've ran transmitting the full buffer, half buffer and 1/4 buffer. I am running code in release configuration. You also should know that I'm running full duplex audio, so I have two wave buffers going. That may make quite a bit of difference. I've taken this code and turned it into an intercom system for my house and for our mobiles when out of the house. I'm also not complaining about the code. It's very good, but I can't get (and don't really need to with this implementation) the MuLaw or ALaw encoding to work for me.
|
|
|
|
|
The main diff about encoding is to reduce data traffic, while it can very expensive on GPRS/3G.
Also you may try: RTP version of that code(Rtp_Audio_demo):
http://www.lumisoft.ee/lswww/download/downloads/Examples/[^]
Also in general what methods won't work in CF, if few of them needed for you, may be i can code these to main lib, so you don't need alter code evry time.
|
|
|
|
|
I understand about the encoding vs. bandwidth, but my bandwidth is unlimited, so it doesn't really matter right now. I'll give the RTP stuff a try in a few days. I already extracted just the UDP, Wave, and NET classes for use on the phone and desktop. I had to rewrite a little of the UDPServer and Wave classes, along with some of the getstring() stuff in NET for the CF, but it all works very well.
I'll check back in with some feedback on the RTP when I get some more time to give it a try.
|
|
|
|
|
Ok, if not too hard, make notes on classes/method what must be changed.
In general it woulde be nice to run dll with CF without changes too.
Also you may write me directly: ivar@lumisoft.ee.
|
|
|
|