https://github.com/nicennnnnnnlee/danmumusicplayer
哔哩哔哩/斗鱼 弹幕点歌姬 - 支持QQ音乐/网易云音乐源
https://github.com/nicennnnnnnlee/danmumusicplayer
Last synced: about 1 month ago
JSON representation
哔哩哔哩/斗鱼 弹幕点歌姬 - 支持QQ音乐/网易云音乐源
- Host: GitHub
- URL: https://github.com/nicennnnnnnlee/danmumusicplayer
- Owner: nICEnnnnnnnLee
- License: apache-2.0
- Created: 2019-10-14T09:31:55.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-09T11:34:11.000Z (about 1 year ago)
- Last Synced: 2024-03-09T12:31:22.702Z (about 1 year ago)
- Language: Java
- Homepage:
- Size: 699 KB
- Stars: 11
- Watchers: 3
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DanmuMusicPlayer





弹幕点歌姬
===============================
## :smile:功能
监听直播间弹幕,当一定等级的粉丝发送`点歌 歌名 singer`时,本地自动搜索并播放歌曲+ 直播间弹幕监听支持情况
| Key | 是否支持 | 最后测试时间 |
| ------------- | ------------- | ------------- |
| bili | 是 | 2024/03/09 |
| douyu | 是 | 2024/03/09 |+ 音乐源支持情况
| Key | 是否支持 |
| ------------- | ------------- |
| 网易云音乐 | 是 |
| QQ音乐 | 是 |## :smile:使用方法
+ 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
```
+ 预览

## :smile:拓展
关于弹幕源
+ 目前支持斗鱼和哔哩哔哩。
如有需求,实现接口**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 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;
}
}
```
## :smile:其它
* **下载地址**: [https://github.com/nICEnnnnnnnLee/DanmuMusicPlayer/releases](https://github.com/nICEnnnnnnnLee/DanmuMusicPlayer/releases)
* **GitHub**: [https://github.com/nICEnnnnnnnLee/DanmuMusicPlayer](https://github.com/nICEnnnnnnnLee/DanmuMusicPlayer)
* **更新历史**:## :smile:第三方库使用声明
* 使用[JSON.org](https://github.com/stleary/JSON-java)库做简单的Json解析[](https://github.com/stleary/JSON-java/blob/master/LICENSE)
* 使用[Java-WebSocket](https://github.com/TooTallNate/Java-WebSocket)进行ws连接[](https://github.com/TooTallNate/Java-WebSocket/blob/master/LICENSE)
* 对该库做了些改动,以解决斗鱼弹幕连接一分钟后断开的问题,详见
* 网易云音乐加密的解析搬运了[这个](https://github.com/guanyuespace/Music163/blob/master/src/guanyue.util/ParametersUtil.java)## :smile:LICENSE
```
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 athttp://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.
```