c语言全局变量,,,的问题,,

问题分析:

1.线程前后顺序有问题?

2.两个api算两次调用,所以变量存在不同的地址。

 

验证,

异步,js单线程,要看结果,只能单独扩展api,

如何解决,

直接修改接口。添加一个特殊接口。

 

 

两个方案:

1. 定制一个专门测试的api,一定可以,基于addlistener 扩展一个定制版本的扩展接口。addlistener后就同时先sendpcmvoicedata,有病吧? 直接在addlistener里调sendpcmvoicedata,试过

2.库中进行多线程操作,第二次访问时将语音数据返回来? 不知是否可行。

 

 

为什么两个api访问的全局变量没起效果。

 

 

Connection reset by peer 什么错误,具体不一定。

 

 

 

 

 

 

 

声明


bool getpcmvoicedata;
char* pcmvoicedata_sent_from_peer;

 

函数1


/*int sendPcmVoice(char voiceData[])*/
int sendPcmVoice(char* voiceData)
{
	extern bool getpcmvoicedata;
	extern char* pcmvoicedata_sent_from_peer;

	ADHOCLOG_SO("====enter so====");
	/*ADHOCLOG_SO(" %s",voiceData);*/
	getpcmvoicedata =true;
	pcmvoicedata_sent_from_peer = voiceData;//save voiceData from app instead of to peers  
	ADHOCLOG_SO("getpcmvoicedata:%d,  %s",getpcmvoicedata,pcmvoicedata_sent_from_peer);
	return 1;
}//发送话音数据

 

 

 

函数2,

bool addPcmVoiceListener(PcmVoiceCallback pFunc)
{

	extern bool getpcmvoicedata;
	extern char* pcmvoicedata_sent_from_peer;


	ADHOCLOG_SO("====enter so====");
	ADHOCLOG_SO("===register successed! waitting to call by peers === %d",getpcmvoicedata);
	/*call3 =  pFunc;*/

	/*if(getpcmvoicedata){*/

	int aa = 110;
	/*char bb[] = "world";*/
	ADHOCLOG_SO(" %s",pcmvoicedata_sent_from_peer);
	pFunc(aa,pcmvoicedata_sent_from_peer);
	
	/*}*/
	return 1;

}//添加接收话音回调监听器

 

现在的问题是,js


                chunks = [];
				var reader=new FileReader();
				reader.readAsText(blob,'utf-8');
				reader.onload=function(e)
				{
					var textfile=reader.result;
					console.log(textfile);
					console.log(reader);
					adhoc.sendPcmVoice(textfile);//发送话音数据

					adhoc.addPcmVoiceListener(function(status, data) {
						dump("============================================adhoc,addPcmVoiceListener==========================================");
						dump("js callback22  navigator.mozAdhoc.addPcmVoiceListener addr="+status);
						dump("js callback22  navigator.mozAdhoc.addPcmVoiceListener data="+data);
						console.log("============================================adhoc,addPcmVoiceListener==========================================");
						console.log("js callback22  navigator.mozAdhoc.addPcmVoiceListener addr="+status);
						console.log("js callback22  navigator.mozAdhoc.addPcmVoiceListener data="+data);
					});//添加接收话音回调监听器


				}

 

 

 

我调了函数1.然后调函数2,但是函数2的变量还是没被改变。。。

我需要他,data=那串乱码,可他一直是空。

c语言全局变量,,,的问题,,_第1张图片

 

现在,我的语言数据(那串乱码)已经能到so库里了,需要把它返回去到js里面,我的想法是用全局变量保存,然后addPcmVoiceListener把这个全局变量的值传上去,但一直是空,,,

 

 

 

 

 

 

你可能感兴趣的:(c,c++)