asysbang

 找回密码
 立即注册
查看: 7280|回复: 0
打印 上一主题 下一主题

WebRtc 记录

[复制链接]

510

主题

2

好友

6309

积分

管理员

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2014-7-21 10:01:33 |只看该作者 |倒序浏览
==============编译运行环境====================================
http://www.webrtc.org/reference/getting-started

1、安装git 和depot-tools
2、需要vpn
3、同步时间需要很长,一共6G多 其中 third_party/android_tools 就有3.6G
PS:由于电脑很多类库无法安装所以用别人编译好的jar和so


==============apk研究====================================
trunk/webrtc/examples/android/media_demo
这个是一个可以设置对方ip就可以实现(本地)视频聊天的例子
设置里面设置对方ip地址        SettingsMenuFragment.java 中 etRemoteIp

也就是通过  getEngine().setRemoteIp(String ip); 来设置对方的ip

如果获得Engine,WebRTCDemo的onreate函数中mediaEngine = new MediaEngine(this);

不过在engine之前必须进行native注册
    // State.
    // Must be instantiated before MediaEngine.
    contextRegistry = new NativeWebRtcContextRegistry();
    contextRegistry.register(this);


之后可以进行engine相关参数的设置
        setRemoteIp
        setTrace
        setAudio
        setAudioCodec
        setAudioRxPort
        setAudioTxPort
        setSpeaker
        setDebuging
        setReceiveVideo
        setSendVideo
        setVideoCodec
        setResolutionIndex
        setVideoTxPort
        setVideoRxPort
        setNack
        setViewSelection
        
开始视频聊天,只需要点击“Main”界面的StartCall
MainMenuFragment.java中
    getEngine().start();
    setViews();


    setViews中,在需要显示的位置添加本地和远程视频的remoteiew
        SurfaceView remoteSurfaceView = getEngine().getRemoteSurfaceView();
            if (remoteSurfaceView != null) {
              llRemoteSurface.addView(remoteSurfaceView);
            }
            SurfaceView svLocal = getEngine().getLocalSurfaceView();
            if (svLocal != null) {
              llLocalSurface.addView(svLocal);
            }

=========另外一个apk研究==========
http://www.html5rocks.com/en/tutorials/webrtc/basics/?redirect_from_locale=zh

这个apk主要是实现android客户端和web客户端之间的视频,
其中包含了stun和turn 服务器
那么先研究下其实现的流程,然后实现android客户端之间的视频


dispose 时会卡在stopCapture  时因为onincomingFrame 时 占用了apics变量导致不能stop,所以在onincomingFrame时判断,如果已经stop了 就直接返回



https://github.com/GoogleChrome/webrtc

下面有很多例子,其中包括Multiple peer connections  ,可以用这个来创建多人聊天室,或者视频会议

111




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|aSys-帮 ( 京ICP备13033689号 )

GMT+8, 2024-6-29 23:54 , Processed in 0.056529 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部