
我用VLC-1.0.5的例程编译了wince版本的vlc,想用libvlc.dll的接口播放流媒体,但是遭遇了许多难题
1.调用libvlc_new加载plugin,加载到liblive555_plugin.dll、libspatializer_plugin.dll和libwince_plugin.dll这三个dll的之后会报错“应用程序edm.exe发生严重出错,必须关闭”,我把这三个dll删除了代码能够执行下去。
2.将下面看到的三个DLL删掉后,能正常播放本地文件,但是不能播放RTP流媒体vlc for wince 下载,查看打印信息会看到“线程0xa970002已退出,返回值为0(0x0)。”
调用libvlc_media_player_get_state(p_media_player,&ex)返回libvlc_Error,但是ex并没有返回异常。
3.在DEBUG模式下就能播放本地文件vlc for wince 下载,在Release模式下读取libvlc的接口直接出错了0xC000005,内存不能为READ
4.我应该播放的流媒体是从电视卡采集的,本来想用vlc-1.0.5的win32版本作为服务器的,但它不争气,能够播放电视卡的内容,却死活不能串流到局域网,后来换了vlc-1.1.1版本能够串流,还不能串流声音。我的电视卡是天敏TB400
vlc版本是1.0.5,使用cygwin+mingw32ce编译,我的研发环境是VS2008+WINCE6.0,使用MFC开发。
这个问题终于苦恼了我一个星期了,哪位前辈能帮我解决wince播放流媒体的难题的话,还有100分奉上,帮帮忙吧!

附上我调用libvlc播放流媒体的代码,这个代码我在window下是可以正常播放流媒体的
//char*psz_mrl="rtp://@:5004";
char*psz_mrl="rtp://@239.255.0.1:5004";//组播,getstate返回libvlc_Error
//char*psz_mrl="\\Disk2\\CEClient\\test.avi";//这个参数可以正常播放test.avi
libvlc_exception_tex;
libvlc_exception_init(&ex);
intvlc_argc=0;
constchar*constvlc_argv[]={

"-I","dummy",/*Don'tuseanyinterface*/
"--ignore-config"/*Don'tuseVLC'sconfig*/
};
vlc_argc=sizeof(vlc_argv)/sizeof(vlc_argv[0]);
p_instance=libvlc_new(vlc_argc,vlc_argv,&ex);//这里开始loadplugin的dll文件,加载到后面讲到的三个dll的之后会错误,然后报“应用程序edm.exe发生严重出错,必须关闭”
raise(&ex);
p_media=libvlc_media_new(p_instance,psz_mrl,&ex);
raise(&ex);

p_media_player=libvlc_media_player_new_from_media(p_media,&ex);
raise(&ex);
libvlc_drawable_thwnd=
(libvlc_drawable_t)this->GetSafeHwnd();
libvlc_media_player_set_drawable(p_media_player,hwnd,&ex);
raise(&ex);
libvlc_media_player_play(p_media_player,&ex);//组播的之后,执行这句会打印“线程0xa970002已退出,返回值为0(0x0)。”
raise(&ex);

libvlc_state_tstate;
do{
state=libvlc_media_player_get_state(p_media_player,&ex);
raise(&ex);
}while(state!=libvlc_Playing&&
state!=libvlc_Error&&
state!=libvlc_MediaPlayerEndReached);
assert(state==libvlc_Playing||state==libvlc_MediaPlayerEndReached);//返回state==libvlc_Error

问题点数:分
-->
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-124354-1.html
最终还是人在操作
而日本每年添置数艘先进战舰
没有一发炮弹击穿主装甲