Closed wisdomTechnologyIoT closed 5 months ago
版本、房间号、Client配置、有无报错🙂
抖音的包是0.4.1 房间号对过 但是其他的平台可以获取数据
枯了
没显示报错
换个直播间也收不到吗
对
都没效果
但我好像复现不了😢,本地跟服务器上都正常的
你那边能正常获取数据吗
为啥你这房间号这么长
那个是任务id,不是房间号
连上了就这样子 没有数据
哪个直播间
这个 667192034586 不过全部的直播间都是这样子
正常
我用的是client模式本地 好奇怪我再试试
代码贴一下看看
if (liveInfo.getLiveType() == 1 && liveInfo.getLiveRoomNumber() != null) { LIVE_TYPE = liveInfo.getLiveType(); String cookie = System.getenv("cookie"); log.error("cookie: {}", cookie); DouyinLiveChatClientConfig config = DouyinLiveChatClientConfig.builder() // TODO 浏览器Cookie .cookie(cookie) .roomId(liveInfo.getLiveRoomNumber()) .build(); douYinClient = new DouyinLiveChatClient(config, new IDouyinMsgListener() { /*进入直播间/ @Override public void onEnterRoomMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinEnterRoomMsg msg) { liveMessageVo messageVo = new liveMessageVo(); messageVo.setType(1); messageVo.setUserName(msg.getUsername()); System.out.println("进入直播间"); webSocket.sendMessageAll(gson.toJson(messageVo)); }
/**收到弹幕*/
@Override
public void onDanmuMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinDanmuMsg msg) {
liveMessageVo messageVo = new liveMessageVo();
messageVo.setType(2);
messageVo.setUserName(msg.getUsername());
messageVo.setMessageContent(msg.getContent());
webSocket.sendMessageAll(gson.toJson(messageVo));
}
/**收到礼物*/
@Override
public void onGiftMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinGiftMsg msg) {
//判断礼物数量是否大于0
if (msg.getGiftCount() > 0) {
liveMessageVo messageVo = new liveMessageVo();
messageVo.setType(3);
messageVo.setUserName(msg.getUsername());
messageVo.setMessageContent(msg.getGiftName());
messageVo.setCount(msg.getGiftCount());
webSocket.sendMessageAll(gson.toJson(messageVo));
System.out.println("礼物内容" + msg);
}
}
});
//开启抓取数据
douYinClient.connect();
final AtomicInteger status = new AtomicInteger(0);
final CountDownLatch latch = new CountDownLatch(1);
// 客户端连接状态回调
douYinClient.addStatusChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
System.out.println(evt);
System.out.println(evt.getPropertyName());
if (evt.getNewValue().equals(ClientStatusEnums.CONNECT_FAILED)) {
System.out.println("连接失败");
status.set(1);
latch.countDown(); // 表明回调已执行
}
}
});
//锁存器 2秒后解锁
latch.await(2, TimeUnit.SECONDS);
if (status.get() == 1) {
return CompletableFuture.completedFuture(new Result().startError());
} else {
System.out.println("开始直播");
return CompletableFuture.completedFuture(new Result().startSuccess());
}
}
感觉唯一可能有问题的就是.roomId(liveInfo.getLiveRoomNumber())
设置房间号这行代码,你试试输出一下实际配置的房间号是多少
输出的是正常的直播间号 String类型
https://live.douyin.com/房间号
可以正常打开直播间吗
可以
添加一下onMsg
消息回调
@Override
public void onMsg(IMsg msg) {
log.debug("收到{}消息 {}", msg.getClass(), msg);
}
加了好像没有回调信息输出
打印一下消息监听器个数,System.out.println("MsgListener Count: " + client.getMsgListeners().size());
把配置cookie的那一行注释掉
再不行我也没法了😭
消息监听器一个
傻眼了 好像也没问题
老哥有联系方式吗 有偿 不会让你白帮忙
抖音无法获取弹幕数据其他的平台可以这个怎么解决大佬