求助:android中的视频通话问题
在android中,有一款叫sipdroid的开源软件,其中有视频通话功能,但是我在G1手机上使用视频通话功能,却提示无法播放视频(两台都是G1手机,都装相同的sipdroid软件,对打)。里面调用的是opencore中的功能。
软件中对应的部分代码为:
if (videopacket.getPayloadLength() > 200)
{
speakermode = Receiver.engine(mContext).speaker(AudioManager.MODE_NORMAL);
speakervalid = Receiver.ccConn.date;
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("rtsp://"+Receiver.engine(mContext).getRemoteAddr()+"
/"+Receiver.engine(mContext).getRemoteVideo()+"/sipdroid"));
startActivity(i);
return;
}
TRACE信息如下:(其中179的IP是对方的IP)
I/ActivityManager( 93): Starting activity: Intent { act=android.intent.action.VIEW dat=rtsp://192.168.208.179/21070/sipdroid cmp=com.android.camera/.MovieView }
D/dalvikvm( 504): threadid=27 wakeup: interrupted
V/VideoView( 581): reset duration to -1 in openVideo
D/MediaPlayer( 581): Couldn't open file on client side, trying server side
W/AudioFlinger( 75): AudioRecordThread: buffer overflow
I/ActivityManager( 93): Displayed activity com.android.camera/.MovieView: 488 ms (total 488 ms)
E/PlayerDriver( 75): Command PLAYER_INIT completed with an error or info PVMFFailure
W/PlayerDriver( 75): PVMFInfoErrorHandlingComplete
E/MediaPlayer( 581): error (1, -1)
E/MediaPlayer( 581): Error (1,-1)
D/VideoView( 581): Error: 1,-1
W/AudioFlinger( 75): AudioRecordThread: buffer overflow
W/AudioFlinger( 75): AudioRecordThread: buffer overflow
W/AudioFlinger( 75): AudioRecordThread: buffer overflow
D/dalvikvm( 93): GC freed 6554 objects / 287024 bytes in 213ms
W/AudioFlinger( 75): AudioRecordThread: buffer overflow
D/VolumePanel( 93): onVolumeChanged(streamType: 3, flags: 0)
D/VolumePanel( 93): onVolumeChanged(streamType: 3, flags: 0)
I/ActivityManager( 93): Starting activity: Intent { flg=0x10000000 cmp=org.sipdroid.sipua/.ui.InCallScreen }
E/MediaPlayer( 581): stop called in state 0
E/MediaPlayer( 581): error (-38, 0)
W/AudioFlinger( 75): AudioRecordThread: buffer overflow
W/MediaPlayer( 581): mediaplayer went away with unhandled events
D/VolumePanel( 93): onVolumeChanged(streamType: 2, flags: 0)
但是,如果用G1手要跟PC上的Linphone软件发打视频电话,PC上的linphone软件是可以收到G1手机的视频的。
并且,如果把代码中的
Uri.parse("rtsp://"+Receiver.engine(mContext).getRemoteAddr()+"
/"+Receiver.engine(mContext).getRemoteVideo()+"/sipdroid"));
替换为:
Uri.parse("rtsp://192.168.208.78/test.3gp");//rtsp://192.168.208.78/test.3gp是流媒体服务器上的一个视频。
时,可以正常播放这个视频。
大家说说,这是什么问题啊?
之前没有做过这一块,这样的问题,应该从哪入手呢?
网上有个人回应说:
in opencore, rtsp isnt support by default. you need to
#define BUILD_STREAMING_MANAGER_NODE 1 in pv_config.h to enable this function
in opencore build. this issue has nothing to do with sipdroid
但是我用android 1.6的版本,加上这个宏重编了一下,问题依旧存在。。。
请大家帮帮忙出出主意,谢谢。。。。
------解决方案--------------------------------------------------------
楼主解决了吗?我也碰到这问题
------解决方案--------------------------------------------------------
自己实现吧,有开源的软件供你参考就不错了,别挑这挑那了;
------解决方案--------------------------------------------------------
我完全外行,但是提些我的想法,望指正。
(1)中国移动的网络内的2台手机是不能直接通信的,需服务器中转
(2)是否考虑视频流的技术。
------解决方案--------------------------------------------------------
关注!
------解决方案--------------------------------------------------------