500分,求flash实现点对点语音的实时通讯的源码?

500分,求flash实现点对点语音的实时通讯的源码?,第1张

Flash是不能直接实现点对点通信的,这是目前版本的Flash决定的,如果有异议,你可以到这个地址去讨论:

http://bbs.blueidea.com/thread-2828556-1-1.html

但若使用FMS或者Red5流媒体服务器来中转的话很容易实现,参照Flash CS3官方帮助文档中的NetConnection和NetStream一节,有详细的讲解

你是不是要安卓源码案例啊,我只知道有网站的源码还是比较多的,个人觉得算是在行业中最大的安卓源码下载网站吧,可以百度一下,好像叫源码天堂吧,记得是Android源码频道哦,希望能够帮到你的学习。

你既然都能聊天了,说明数据能够发送和接收了,传送文件还不好解决???唯一的区别就是文件可能会太大,你只要把一个文件划分为许多小的数据包,一个一个发过去不就行了。

这是我原来写的,现在看起来有很多地方可以简化:读取一个文件的一个包到buf中,你在外面加个循环,将这块buf发送出去就行啦!MAX_SEND_BUF_LENGTH = 2048(2K)

/*====================================================================

函数名 :GetDataPackages

功能:获文件的数据包个数

算法实现:

引用全局变量:

输入参数说明:无

返回值说明 :无

====================================================================*/

int CClientInstance::GetDataPackages(s8 *pchFilePath)

{

//以只读形式打开指定文件

FILE *pf = fopen(pchFilePath,"rb")

if (pf == NULL)

{

printf("文件路径打开失败!")

return 0

}

//计算文件长度

fseek(pf,0,SEEK_END)

u32 dwFileLen = ftell(pf)

u32 dwPackeges = dwFileLen/MAX_SEND_BUF_LENGTH

rewind(pf)

//关闭文件

fclose(pf)

if( (dwFileLen%MAX_SEND_BUF_LENGTH) == 0 )

{

return dwPackeges

}

return dwPackeges+1

}

/*====================================================================

函数名 :ReadFileData

功能:读取文件数据

算法实现:

引用全局变量:

输入参数说明:无

返回值说明 :无

====================================================================*/

BOOL CClientInstance::ReadFileData(s8 *pchFilePath,u32 dwPackage,s8* pchFileData,u32 *pdwBufLen)

{

//以只读形式打开指定文件

FILE *pf = fopen(pchFilePath,"rb")

if (pf == NULL)

{

return FALSE

}

//计算文件总长度

fseek(pf,0,SEEK_END)

u32 dwFileSize = ftell(pf)

rewind(pf)

//计算文件还剩的长度

u32 dwRemainFileLen = dwFileSize-dwPackage*MAX_SEND_BUF_LENGTH

char achBuf[MAX_SEND_BUF_LENGTH+1]

memset(achBuf,0,MAX_SEND_BUF_LENGTH+1)

//读取文件长度为剩余长度与最大读取长度的最小值

u32 dwReadLen = min(dwRemainFileLen,MAX_SEND_BUF_LENGTH)

//偏移掉已经发送的文件数据

fseek(pf,dwPackage*MAX_SEND_BUF_LENGTH,SEEK_SET)

//读取文件

fread(achBuf,1,dwReadLen,pf)

//关闭文件

fclose(pf)

//将数据复制到输出指针中

if(pchFileData != NULL)

{

memcpy(pchFileData,achBuf,dwReadLen)

*pdwBufLen = dwReadLen

return TRUE

}

return FALSE

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11227947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存