
com.hiczp.bilibili.api.danmaku.DanmakuParser.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bilibili-api Show documentation
Show all versions of bilibili-api Show documentation
Bilibili Android client API library for Kotlin
The newest version!
package com.hiczp.bilibili.api.danmaku
import com.google.gson.stream.JsonReader
import com.hiczp.bilibili.api.bounded
import com.hiczp.bilibili.api.readUInt
import java.io.InputStream
import java.util.*
import java.util.zip.GZIPInputStream
import javax.xml.namespace.QName
import javax.xml.stream.XMLInputFactory
import javax.xml.stream.XMLStreamConstants
/**
* 弹幕文件解析器.
* 弹幕文件(list.so)有三个部分
* 第一个部分为一个 Int, 表示第二部分的长度
* 第二部分为一个 Json, 标识各个弹幕的等级(用于屏蔽设置)
* 第三部分为一个 gzip 压缩过的 xml
*
* Web 端的弹幕是一个明文 xml, 与 APP 的接口是不一样的.
*
* json 部分形如 {"dmflags":[{"dmid":12551893546958848,"flag":10}],"rec_flag":1,"rec_text":"开启后,全站视频将按等级等优化弹幕","rec_switch":1}
* xml 部分形如 硬核劈柴
*
* @see com.hiczp.bilibili.api.danmaku.DanmakuAPI.list
*/
@Suppress("SpellCheckingInspection")
object DanmakuParser {
/**
* 解析弹幕文件
*
* @param inputStream 输入流, 可以指向任何位置
*
* @return 返回 flags map 与 弹幕序列. 注意, 原始的弹幕顺序是按发送时间来排的, 而非播放器时间.
*/
fun parse(inputStream: InputStream): Pair
© 2015 - 2025 Weber Informatics LLC | Privacy Policy