监听直播间弹幕,当一定等级的粉丝发送点歌 歌名 singer
时,本地自动搜索并播放歌曲
- 直播间弹幕监听支持情况
Key | 是否支持 | 最后测试时间 |
---|---|---|
bili | 是 | 2024/03/09 |
douyu | 是 | 2024/03/09 |
- 音乐源支持情况
Key | 是否支持 |
---|---|
网易云音乐 | 是 |
QQ音乐 | 是 |
- Windows下调用
run.bat
即可,其它java环境可参考命令行调用
set /p musicSource="请选择音乐源(qq/163):"
set /p danmukuSource="请输入弹幕源(douyu/bili):"
set /p roomId="请输入房间号:"
set /p level="请输入允许点歌的粉丝牌最小等级:"
java -Dfile.encoding=utf-8 -jar DanmuFkMusic.jar %danmukuSource% %roomId% %musicSource% %level%
pause
关于弹幕源
- 目前支持斗鱼和哔哩哔哩。
如有需求,实现接口nicelee.function.danmuku.core.IDanmuku,并在类上加上注释即可。
举例:
@Autoload(source = "弹幕源标识", desc = "弹幕源描述")
那么Main方法里,将danmuSource替换为播放器标识即可。如下:
IDanmuku danmu = DanmukuManager.createDanmuku("弹幕源标识", roomId);
以下为IDanmuku
接口:
public interface IDanmuku {
// 请实现静态实例化create方法
//public static IDanmuku create(long roomId)
public boolean start();
public void stop();
public int status();
public List<IMsgHandler> addMsgHandler(IMsgHandler handler);
}
关于音乐源
- 目前支持网易云和QQ音乐。如有需求,实现接口nicelee.function.music.source.IMusicAPI,并在类上加上注释即可。
举例:
@Autoload(source = "音乐源标识", desc = "音乐源描述")
那么Main方法里,将musicSource替换为播放器标识即可。如下:
IMusicAPI api = MusicManager.createMusicAPI("音乐源标识");
关于音乐播放器
- 目前只是实现了一个简单的播放器。
如有需求,实现接口nicelee.function.music.player.IMusicPlayer,并在类上加上注释即可。
举例:
@Autoload(source = "播放器标识", desc = "播放器描述")
那么Main方法里,将ws替换为播放器标识即可。如下:
IMusicPlayer player = MusicManager.createMusicPlayer("播放器标识");
关于更复杂的弹幕逻辑处理
- 新增一个IMsgHandler并注册即可,返回值代表是否继续处理下一个Handler
举例:
new IMsgHandler() {
@Override
public boolean handle(Msg msg, User user) {
...
return true;
}
}
- 下载地址: https://github.com/nICEnnnnnnnLee/DanmuMusicPlayer/releases
- GitHub: https://github.com/nICEnnnnnnnLee/DanmuMusicPlayer
- 更新历史: https://github.com/nICEnnnnnnnLee/DanmuMusicPlayer/blob/master/UPDATE.md
- 使用JSON.org库做简单的Json解析
- 使用Java-WebSocket进行ws连接
- 对该库做了些改动,以解决斗鱼弹幕连接一分钟后断开的问题,详见https://github.com/nICEnnnnnnnLee/Java-WebSocket
- 网易云音乐加密的解析搬运了这个
Copyright (C) 2019 NiceLee. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.