Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/greensea/ytplayer
ytplayer 是一个基于 Flash 的弹幕播放器
https://github.com/greensea/ytplayer
Last synced: 3 months ago
JSON representation
ytplayer 是一个基于 Flash 的弹幕播放器
- Host: GitHub
- URL: https://github.com/greensea/ytplayer
- Owner: greensea
- License: gpl-3.0
- Created: 2013-04-08T08:40:05.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-08-26T05:46:02.000Z (about 11 years ago)
- Last Synced: 2024-06-23T19:34:17.343Z (5 months ago)
- Language: ActionScript
- Size: 10.6 MB
- Stars: 21
- Watchers: 8
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: COPYING
Awesome Lists containing this project
- awesome-actionscript-sorted - ytplayer - ytplayer 是一个基于 Flash 的弹幕播放器 (Multimedia / Media Player)
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 时间戳