Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/greensea/ytplayer

ytplayer 是一个基于 Flash 的弹幕播放器
https://github.com/greensea/ytplayer

Last synced: 3 months ago
JSON representation

ytplayer 是一个基于 Flash 的弹幕播放器

Awesome Lists containing this project

README

        

ytplayer 是一个弹幕播放器,创建于 bilibili 建站前期,但是和 bilibili 没有任何关系(bilibili 似乎是用了和 ytplayer 同一个时期出现的 Yet Another XXX Player (我忘记 XXX 是什么了)来作为播放器的)。当年 AcFun 上面出现了大量质量低劣的广告,于是我就想着另建一个弹幕网站,接着就有了这个东西。

后来 bilibili 出现了,并且当时表现不错,然后这东西就搁置了。最近突然有人问我要代码,于是就从以前的 SVN 仓库里面扒出代码,传到 GitHub 来了。

演示站点: http://ytp.bbxy.net <-- 此站点会不定期抽风,如果页面显示 HTTP 503 错误,说明服务器又抽风了,请过半天左右以后再尝试访问。

部署说明请看 INSTALL.md 文件

== Flash 播放器如何获取和发送弹幕? ==

=== 发送弹幕 ===

Flash 播放器会将弹幕以 HTTP GET 方式发送给 savecomment.php 页面,各参数意义如下

content:经过 URL 编码的弹幕内容

fontsize:弹幕字号

color:弹幕字体颜色,以十进制表示的十六进制颜色值。比如,若颜色为蓝色(#0000ff),那么这里的值就应该为 255

mode:弹幕模式,0=底部弹幕,2=顶部弹幕,3=飞行弹幕,4=字幕菌

playtime:弹幕对应的影片播放时间,以毫秒为单位

id:弹幕对应的影片编号

完整的请求应该和下面的例子类似:

savecomment.php?content=%E6%B5%8B%E8%AF%95&fontsize=22&color=16777215&mode=3&playtime=199697&id=52

这个例子将会发送一个内容为“测试”,颜色白色,字号为 22,对应 52 号影片,并在影片播放到 199.697s 时出现的飞行弹幕。

=== 获取弹幕 ===

Flash 播放器在加载的时候会通过 playinfo.php 以 HTTP GET 方式读取对应影片的信息以及弹幕,参数如下:

id:影片编号

完整的请求应该和下面的例子类似:

playinfo.php?id=56

playinfo.php 会以 XML 格式返回影片信息及弹幕,格式如下:


1
http://v61.v.iask.com/f/1/4de79ddcc3fc25fe3fe2237d8499f01316750450.flv
424
新华里同人歌曲新专辑5in1 - 10月号「大容量」

1
3

结束之后的弹幕测试
就归结为Flash的技术问题吧
其实理论上来说只要缓冲够了应该是可以定位到任意帧的嘛

各元素意义如下:

flvID:影片编号

flvURL:视频下载地址,如果视频被分段,则各段地址将以换行符 '\n' 进行分隔

playTimes:视频总时长,单位为秒

title:视频标题

onlineCount:当前在线人数

commentCount:弹幕总数

元素的值为弹幕内容,各属性的意义如下:

id:弹幕编号

fontSize:弹幕大小

flySpeed:弹幕显示时间,即从弹幕出现到弹幕消失的时间总和

fontColor:弹幕文字颜色

flyType:弹幕类型,可选值为 [fly|top|bottom]

isSubtitle:是否为弹幕菌的弹幕,1=是,0=否

playTime:弹幕出现时的影片时间,单位为秒,精确到小数点后 3 位

commentTime:弹幕发表的时间,单位为 UNIX 时间戳