网络Filter只能单独播视频、或者音频,不能同时播视频和音频的问题。
服务方读ASF文件的Sample,并以一个Socket发送视频、音频Sample到客户Filter,客户Filter自然有两个输出Pin,一个输出视频,一个输出音频,问题是,客户方要是只连视频Pin,或者只连音频Pin进行播放都很正常。要是两个输出Pin同时进行连接播放,则不能播放(但偶尔也能播,很偶尔)。
服务器方是保证按时间戳先后发送视音频Sample的,但发送速度很快。
当视音频Pin同时连接并播放时,我发现接收线程被阻塞,而这时关闭Video窗口,则接收线程又能运行。
是线程阻塞了吗?抑或是时间戳不同步?但好像都不象,我试着在这个两种怀疑上做过一些工作。
我这么来分析,要是线程死锁,那么程序一定会死,但程序并没有死。要是视音频时间戳不同步,而服务器方完全是按时间戳先后发送的,不会出现不同步的情况。
或许是要写两个Socket来分别发送视音频,建立独立的两条链路来工作,而不在同一个客户Filter里输出两路流。