Chinaunix首页 | 论坛 | 博客
  • 博客访问: 523486
  • 博文数量: 576
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5020
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(576)

文章存档

2011年(1)

2008年(575)

我的朋友

分类:

2008-10-14 14:52:02

flypenghong:做的不错,我正参考本站的SPEAK FREELY,刚整理了部分代码,对编码,解码那部分正头疼呢,谢谢!
(发表于2003-1-13 11:00:00)

morenyonghu:好像只是把NETTALK的Demo中语音部分包装成了一个DLL啊,其实我觉得,还是同时给出nettalk那个Demo的下载链接为好,因为那个程序在界面处理,自定义消息等方面都写的至少我感觉还是不错,大家还是读读原版的比较好一些。学到的东东也多些。
(发表于2003-1-14 9:53:00)

flypenghong:有于各个计算机性能不一样,对调序的那部分代码,我觉的用链表好些,代码简洁,又有了很好的缓冲机制
void CBufferList::AddBuffer(char *pBuffer, int iLen)
{

    struct Frame *m_pFrame;//定义接收数据的指针

m_pNewBuffer=new struct RecvBuffer;//准备被填充的数据
    m_pFrame = (struct Frame *)pBuffer;
m_pNewBuffer->iIndex=m_pFrame->iIndex;
//拷贝数据到新的列表
memcpy(m_pNewBuffer->cdata,pBuffer+sizeof(struct Frame),60);
      if(IsEmpty())//如果是空表,直接添加
  {
    CPtrList::AddTail(m_pNewBuffer);
    return;
  }

POSITION pos,temp;
for (pos=GetHeadPosition();pos!=NULL;)
{
temp=pos;
struct RecvBuffer *pFindBuffer=(struct RecvBuffer*)GetNext(pos);
      if(m_pNewBuffer->iIndexiIndex)
  {
       CPtrList::InsertBefore(temp,m_pNewBuffer);
   return;
  }
}
CPtrList::AddTail(m_pNewBuffer);
}
对了,你每帧中有个CB[12],是什么意识?怎么没见使用?
(发表于2003-1-16 13:59:00)

X-mind:cb[12] 是保留的,提供以后有什么附加的东西可以使用,提供兼容。
对于聊天,实时性要求比较高。如果有办法不乱序,就可以尽量减少缓冲,对于调序,我觉得在internet上,如果网络不是经常被改动,ip数据走的线路基本是固定的,也就是说udp乱序的可能并不是很大,一个简单的方法就是把迟到的包丢丢掉,直接播放已经播放的包后面的数据。这样可以更实时。不过我没实过。你可以试试。
使用链表当然可以,我做调序那里的原则是只要发现数据到达的顺序正确,就马上播放,只是在乱序,掉包的时候才用到缓冲,如果没有乱序掉包,是不用缓冲的


(发表于2003-1-17 11:42:00)

sujikui:这个代码延迟好象有些大了点,能不能做做改进阿

(发表于2003-5-20 15:51:00)

woo_17:请问有G723.1的算法的源码吗? 我找不到G723.1 6kb的算法源码! 
thanks!
(发表于2004-3-17 19:43:00)

syf1025:好程序
(发表于2007-6-15 6:26:00)

..........................................................................
--------------------next---------------------

阅读(316) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~