Skip to content

Commit

Permalink
feat: 提供视频自定义danmakuList和danmakuFlow
Browse files Browse the repository at this point in the history
  • Loading branch information
muedsa committed Dec 2, 2024
1 parent a27ab7f commit d8ff06b
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 0 deletions.
14 changes: 14 additions & 0 deletions api/src/main/java/com/muedsa/tvbox/api/data/DanmakuData.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.muedsa.tvbox.api.data

/**
* @see <a href="https://github.com/KwaiAppTeam/AkDanmaku/blob/master/library/src/main/java/com/kuaishou/akdanmaku/data/DanmakuItemData.kt">DanmakuItemData.kt</a>
*/
data class DanmakuData(
val danmakuId: Long, // 单个弹幕的唯一 Id
val position: Long, // 弹幕的相对时间戳,单位:毫秒
val content: String, // 弹幕文本内容
val mode: Int = 1, // 弹幕的局排版的方式 0 1 4 5
val textColor: Int = 0xFF_FF_FF, // 弹幕字体颜色
val score: Int = 9, // 弹幕的分值标识,用于排序计算等
val danmakuStyle: Int = 1, // 弹幕定制样式 1 2 4 8
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.muedsa.tvbox.api.data

import kotlinx.coroutines.flow.Flow

interface DanmakuDataFlow {
val flow: Flow<DanmakuData>
fun close()
}
2 changes: 2 additions & 0 deletions api/src/main/java/com/muedsa/tvbox/api/data/MediaDetail.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ open class MediaDetail(
val favoritedMediaCard: SavedMediaCard? = null,
val rows: List<MediaCardRow> = emptyList(),
val disableEpisodeProgression: Boolean = false,
val enableCustomDanmakuList: Boolean = false,
val enableCustomDanmakuFlow: Boolean = false,
) : MediaBase(
id = id,
title = title,
Expand Down
3 changes: 3 additions & 0 deletions api/src/main/java/com/muedsa/tvbox/api/data/MediaEpisode.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.muedsa.tvbox.api.data

import kotlinx.serialization.Serializable

@Serializable
open class MediaEpisode(
val id: String,
val name: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.muedsa.tvbox.api.service

import com.muedsa.tvbox.api.data.DanmakuData
import com.muedsa.tvbox.api.data.DanmakuDataFlow
import com.muedsa.tvbox.api.data.MediaDetail
import com.muedsa.tvbox.api.data.MediaEpisode
import com.muedsa.tvbox.api.data.MediaHttpSource
Expand All @@ -10,4 +12,8 @@ interface IMediaDetailService {
suspend fun getDetailData(mediaId: String, detailUrl: String) : MediaDetail

suspend fun getEpisodePlayInfo(playSource: MediaPlaySource, episode: MediaEpisode) : MediaHttpSource

suspend fun getEpisodeDanmakuDataList(episode: MediaEpisode): List<DanmakuData>

suspend fun getEpisodeDanmakuDataFlow(episode: MediaEpisode): DanmakuDataFlow?
}

0 comments on commit d8ff06b

Please sign in to comment.