为什么我自己照着anychat开发流程指南写的demo得不到对方的视频呢?
本帖最后由 简单bu小小 于 2015-11-13 11:56 编辑我是按照开发流程指南上一步一步写的啊,不知道哪里的问题:'(对方能看到我,我看不到对方我的代码:
MainActivity的代码:
package com.dcl.myanychatdemo;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.bairuitech.anychat.AnyChatBaseEvent;
import com.bairuitech.anychat.AnyChatCoreSDK;
import com.bairuitech.anychat.AnyChatObjectEvent;
public class MainActivity extends Activity implements AnyChatBaseEvent,AnyChatObjectEvent{
private AnyChatCoreSDK anychat=null;
private Button loginBtn,chatBtn;
private String serverIp="demo.anychat.cn";
private int port=8906;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initSDK();
initView();
}
private void initView() {
loginBtn=(Button) findViewById(R.id.login);
chatBtn=(Button) findViewById(R.id.chat);
loginBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//连接服务器,第一个参数为需要连接的视频服务器地址,部署的视频服务器地址为多少就传入多少
anychat.Connect(serverIp, port);
//用户登录
anychat.Login("Adeng", "");
}
});
chatBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//进入房间
Intent intent=new Intent();
intent.setClass(MainActivity.this, ChatActivity.class);
startActivity(intent);
}
});
}
private void initSDK() {
//新建核心类对象
//方法一:
anychat=new AnyChatCoreSDK();
//方法二:
// anychat=AnyChatCoreSDK.getInstance(getApplicationContext());
//设置基本回调事件接收
anychat.SetBaseEvent(this);
//设置业务对象回调事件接收
anychat.SetObjectEvent(this);
//初始化SDK,第一个参数传入的是Android的系统版本号
anychat.InitSDK(Build.VERSION.SDK_INT, 0);
}
//连接服务器触发(connet),bSuccess==true连接服务器成功,反之连接服务器失败
@Override
public void OnAnyChatConnectMessage(boolean bSuccess) {
// TODO Auto-generated method stub
if(bSuccess){
Log.i("msg", "连接服务器成功");
}else{
Log.i("msg", "连接服务器失败");
}
}
//用户登录触发(login),dwUserId是服务器为客户端分配的唯一标识userid,dwErrorCode==0表示登录成功,其他值为登录服务器失败的错误代码
@Override
public void OnAnyChatLoginMessage(int dwUserId, int dwErrorCode) {
// TODO Auto-generated method stub
if(dwErrorCode==0){
Log.i("msg", "登录成功,userid="+dwUserId);
anychat.EnterRoom(1, "");
}else{
Log.i("msg", "登录失败,错误代码为:"+dwErrorCode);
}
}
//进入房间触发,dwRoomId为房间号,dwErrorCode==0表示进入房间成功,其他值为进入房间失败的错误代码
@Override
public void OnAnyChatEnterRoomMessage(int dwRoomId, int dwErrorCode) {
// TODO Auto-generated method stub
if(dwErrorCode==0){
Log.i("msg", "进入房间成功");
}else{
Log.i("msg", "进入房间失败,错误代码为:"+dwErrorCode);
}
}
@Override
public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId) {
// TODO Auto-generated method stub
Log.i("msg", dwRoomId+"号房间在线人数有"+dwUserNum);
}
//当前房间用户离开或者进入房间触发这个回调,dwUserId用户ID,bEnter==true表示进入房间,反之表示离开房间
@Override
public void OnAnyChatUserAtRoomMessage(int dwUserId, boolean bEnter) {
// TODO Auto-generated method stub
}
@Override
public void OnAnyChatLinkCloseMessage(int dwErrorCode) {
// TODO Auto-generated method stub
Toast.makeText(this, "网络异常,与服务器断开,请检查网络", Toast.LENGTH_SHORT).show();
}
//业务对象回调事件,调用AnyChatCoreSDK.ObjectControl方法触发这个回调
@Override
public void OnAnyChatObjectEvent(int dwObjectType, int dwObjectId,
int dwEventType, int dwParam1, int dwParam2, int dwParam3,
int dwParam4, String strParam) {
// TODO Auto-generated method stub
}
}
显示聊天的界面ChatActivity的代码:
package com.dcl.myanychatdemo;
import com.bairuitech.anychat.AnyChatCoreSDK;
import com.bairuitech.anychat.AnyChatDefine;
import android.app.Activity;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class ChatActivity extends Activity{
private SurfaceView surfaceviewLocal,surfaceviewRemote;
private AnyChatCoreSDK anychatSDK;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chat);
anychatSDK=new AnyChatCoreSDK();
//初始化用于显示视频的控件surfaceview
surfaceviewLocal=(SurfaceView) findViewById(R.id.surfaceview_local);
surfaceviewRemote=(SurfaceView) findViewById(R.id.surfaceview_remote);
//设置本地视频采集随着设备而旋转处理
AnyChatCoreSDK.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_AUTOROTATION, 1);
//初始化硬件Camera设备必须在oncreate方法中
//启动anychat传感器监听
anychatSDK.mSensorHelper.InitSensor(this);
//初始化camera上下文句柄
AnyChatCoreSDK.mCameraHelper.SetContext(this);
//设置SURFACE_TYPE_PUSH_BUFFERS模式
surfaceviewLocal.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
//打开本地视频预览,开始采集本地视频数据
surfaceviewLocal.getHolder().addCallback(AnyChatCoreSDK.mCameraHelper);
//打开本地视频,第一个参数用-1表示本地,也可以用本地的真是userID
anychatSDK.UserCameraControl(-1, 1);
//打开本地音频
anychatSDK.UserSpeakControl(-1, 1);
//-35626为通话目标对象的userID
int index=anychatSDK.mVideoHelper.bindVideo(surfaceviewRemote.getHolder());
anychatSDK.VideoCallControl(AnyChatDefine.BRAC_VIDEOCALL_EVENT_REQUEST, -35882, 0, 0, 0, null);
anychatSDK.mVideoHelper.SetVideoUser(index, -35882);
anychatSDK.UserCameraControl(-35882, 1);
anychatSDK.UserSpeakControl(-35882, 1);
}
}
求助大神啊~
您好,提供一下双方的日志文件,Android客户端的日志在SD卡根目录下(BRAnyChatCore.log)。另外开发时可以参考SDK包下的HelloAnyChatdemo进行开发。 陈文仲 发表于 2015-11-13 14:08
您好,提供一下双方的日志文件,Android客户端的日志在SD卡根目录下(BRAnyChatCore.log)。另外开发时可以 ...
---------------------------AnyChat Platform Core SDK Client Log---------------------------
Load libanychatcore.so success!(V5.3 Build Time:Aug 10 2015 05:31:49)
Android OS SDK Version:18, Support ARMv7:2, Support Neon:4
Load libmediautil_v7.so success!(V5.3 Build Time:Aug 10 2015 05:32:58)
Load libmediashow.so success!(V5.3 Build Time:Aug 10 2015 05:32:42)
Load libmediacore.so success!(V5.3 Build Time:Aug 10 2015 05:32:44)
cpu:Qualcomm MSM 8226 (Flattened Device Tree)(lattened Device Tree)) ) mips
SM-G7108(samsung) msm8226 MSM8626 4.3
Apply video parameter:320x240, bitrate:150kbps, quality:3, gop:40, fps:10, preset:3, codec:0
Invoke SetSDKOption(BRAC_SO_NETWORK_P2PPOLITIC=1)
Invoke SetSDKOption(BRAC_SO_AUDIO_ECHOCTRL,1)
Invoke SetSDKOption(BRAC_SO_CORESDK_USEHWCODEC=0)
Invoke Connect(demo.anychat.cn,8906)=0
Invoke LoginServer(username=name)
CheckClientSocketLink Connect(ip=121.199.51.198,port=8906)
Server version: V5.3(Build Time:2015-09-29 22:14:08, Server OS:Windows)
Message OnConnect(bSuccess:1, errorcode=0)
Message OnLoginSystem(userid=-36324,errorcode=0,username=name), msg deliver worked(0)
Server running time: 20 days, 22 hours, 55 minutes, license mode:1
Invoke EnterRoom(roomid=1)
Connection to streaming media server successfully!(udp delay:434ms)
Message OnEnterRoom(roomid=1,errorcode=0,siteindex=7)
Audio Playback Device Init(0, 1, 16000, 16), Default Playback Driver
Message OnReceiveOnlineUser(count=7,roomid=1)
Message OnP2PConnectState(userid=9719, state=2)
Message OnP2PConnectState(userid=-36318, state=2)
Message OnP2PConnectState(userid=9646, state=2)
Invoke VideoCallControl(EventType:1, UserId:-36318, ErrorCode:0, dwFlags:0, dwParam:0, UserStr:)=0
Invoke UserCameraControl(userid=-36318, bOpen=1, stream=0)
Invoke UserSpeakControl(userid=-36318,bOpen=1)
Invoke UserCameraControl(userid=-1, bOpen=1, stream=0)
Invoke UserSpeakControl(userid=-1,bOpen=1)
Invoke SetSDKOption(BRAC_SO_CORESDK_EXTVIDEOINPUT=0)
Invoke SetInputAudioFormat(1, 16000, 16, flags:0)
Audio Init, error:0, device:-1, 1, 16000, 16, capmode:0
Audio codec init, handle:1, 11, 1, 16000, 16, 15850
Audio FX Status: VAD:1, NS:1, AGC:1, AEC:1
APPLOG Camera Preview size: 720 x 720
APPLOG Camera Preview size: 1280 x 720
APPLOG Camera Preview size: 1056 x 864
APPLOG Camera Preview size: 960 x 720
APPLOG Camera Preview size: 720 x 480
APPLOG Camera Preview size: 640 x 480
APPLOG Camera Preview size: 352 x 288
APPLOG Camera Preview size: 320 x 240
APPLOG Camera FrameRate: 7000 , 30500
Message OnVideoCallEvent(EventType:2, UserId:-36318, ErrorCode:0, dwFlags:0x0, dwParam:0
Invoke SetSDKOption(BRAC_SO_CORESDK_EXTVIDEOINPUT=1)
Invoke SetInputVideoFormat(pixfmt:8, 320x240, 30fps, flags:0)
video init finish:320x240, NV21, fps:30, codecid:1
video codec init:codec:1, 10fps, 320x240, bitrate:150kbps, quality:3, preset:3, gop:40, handle:2
userid(-36318) audio decode, codec:11, 1 channel, 16000Hz
userid(-36318) video decode, codec:1, 320x240, delay:7ms
这个是我的demo的日志,另外一个设备运行的是helloanychat的demo 陈文仲 发表于 2015-11-13 14:08
您好,提供一下双方的日志文件,Android客户端的日志在SD卡根目录下(BRAnyChatCore.log)。另外开发时可以 ...
我知道怎么回事了,我在chatActivity里的anychatsdk没有设置基本回调事件,就是这句:
anychatSDK.SetBaseEvent(this);
页:
[1]