小弟最近在弄libjingle的东西,将libjingle与linphone结合,理论上应该是可以双向通信的。但我的现在只能向gtalk发出声音,gtalk那边说话却听不到,即只能单边通信。哪位大大知道这是什么问题?
附上相关代码:
/* call_main.cc */
cricket::MediaEngineInterface* MediaEngineFactory::CreateLinphoneMediaEngine(const std::string& ringWav, const std::string& callWav) {
cricket::LinphoneMediaEngine* linphone_media_engine = new cricket::LinphoneMediaEngine(ringWav, callWav );
// Set voice and video codecs. TODO: The codecs actually depend on
// the the input voice and video streams.
std::vector<cricket::AudioCodec> voice_codecs;
voice_codecs.push_back(
cricket::AudioCodec(9, "G722", 16000, 0, 1, 0));
voice_codecs.push_back(
cricket::AudioCodec(0, "PCMU", 8000, 0, 1, 0));
voice_codecs.push_back(
cricket::AudioCodec(13, "CN", 8000, 0, 1, 0));
voice_codecs.push_back(
cricket::AudioCodec(105, "CN", 16000, 0, 1, 0));
linphone_media_engine->set_voice_codecs(voice_codecs);
std::vector<cricket::VideoCodec> video_codecs;
video_codecs.push_back(
cricket::VideoCodec(97, "H264", 320, 240, 30, 0));
video_codecs.push_back(
cricket::VideoCodec(99, "H264-SVC", 640, 360, 30, 0));
linphone_media_engine->set_video_codecs(video_codecs);
return linphone_media_engine;
}
if (FLAG_voiceinput || FLAG_voiceoutput ||
FLAG_videoinput || FLAG_videooutput) {
// If any dump file is specified, we use a FileMediaEngine.
cricket::MediaEngineInterface* engine =
MediaEngineFactory::CreateFileMediaEngine(
FLAG_voiceinput, FLAG_voiceoutput,
FLAG_videoinput, FLAG_videooutput);
client->SetMediaEngine(engine);
}
else
{ cricket::MediaEngineInterface* engine = MediaEngineFactory::CreateLinphoneMediaEngine("ambul.wav", "bb.wav");
client->SetMediaEngine(engine);
}
将 "libmediastreamer-1.lib" , "libortp-8.lib" 和 libmediastreamer2-1.dll, libortp-8.dll 放到相关目录。