tiansh/us-danmaku

发现一阻碍转换的字符..........

Closed this issue · 8 comments

lfjs commented

经过排查.....发现3000条的弹幕文件转换到这里就停了,只要删掉日文后面的这个符号就没有任何问题.........
本条弹幕包含的字符【おかえりなさい】(网页编码不支持该字符..)
本条弹幕所在位置【 http://pan.baidu.com/s/1mg8BUru 】第19集的xml的大约704行
不知道什么鬼传不了图片.......
原力与你同在!

跟日文字符没关系,是因为里面有个 \u0013 的字符,所以这个文件不符合 XML 关于字符内容的规范,然后脚本调用浏览器解析 XML 的接口时就出错了。

lfjs commented

=)
不懂.......但是如果发生这种情况的话能报个错就好了,就不用费劲去找了

简单地说,就是,这个文件不是个正确的 XML 文件,所以处理的时候就挂了……

我看看怎么替代解决一下这问题……

lfjs commented

不愧是大神!
让我们共建社会主义和谐**!

你试试,应该好了。
我自动把那个会出问题的字符删掉了……

lfjs commented

没问题了!
我又研究了一下[V4+ Styles]字幕的样式
然后在你的代码里加了点能直观影响弹幕样式的变量
就是后面与你注释风格不一样的部分
这样一来就没有不能改动的.ass的参数了,大神你愿意动弹的话就看看.....在我这边一样一样试过的
var config = {
'playResX': 1440, // 屏幕分辨率宽(像素)
'playResY': 900, // 屏幕分辨率高(像素)
'fontlist': [ // 字形(会自动选择最前面一个可用的)
'黑体',
'Microsoft YaHei UI',
'Microsoft YaHei',
'文泉驿正黑',
'STHeitiSC',
],
'font_size': 1.13, // 字号(比例)
'r2ltime': 15, // 右到左弹幕持续时间(秒)
'fixtime': 4, // 固定弹幕持续时间(秒)
'opacity': 0.85, // 不透明度(比例)
'space': 0, // 弹幕间隔的最小水平距离(像素)
'max_delay': 2, // 最多允许延迟几秒出现弹幕
'bottom': 130, // 底端给字幕保留的空间(像素)
'use_canvas': null, // 是否使用canvas计算文本宽度(布尔值,Linux下的火狐默认否,其他默认是,Firefox bug #561361)
'debug': false, // 打印调试信息

'_Delaytime': -0,// 弹幕发射延迟、弹幕错位补正(如果‘暂停成功’弹幕出现在视频情节之后,用负数修正)

'_Bold': '1',//是否加粗
'_Italic': '0',//是否斜体
'_Underline': '0',//是否下划线
'_StrikeOut': '0',//是否删除线
'_ScaleX': '100', //横向缩放,默认是100就是100%的意思,如果要变为20%就是20
'_ScaleY': '100', //
'_Spacing': '0', //每个字间的距离 ,数值为像素值
'_Angle': '0', //平面旋转,数值为旋转的角度,默认为0.00
'_BorderStyle': '1', //字幕background样式,1为正常无底色,3为有底色
'_Outline': '1', //字体描边程度,像素值
'_Shadow': '0', //阴影偏移的距离,0的话没有阴影,有的话阴影会影响文字的透明度!
'_Alignment': '2', //对齐方式,即字幕出现在屏幕中的位置,数值为1-9,与小键盘区排列相同,1为左下,9为右上
'_MarginL': '20', //字幕距左右两边的距离
'_MarginR': '20', //
'_MarginV': '130', //字幕高度 下对齐时表示到底部的距离 上对齐时表示到顶部的距离 中对齐时无效
'_Encoding': '0',//编码方式,134=GB2312(简体中文)136=CHINESEBIG5(繁体中文)1=DEFAULT(字幕自己选择)
};

      line.type = 'R2L';
      line.stime = pos.time + config._Delaytime;
      line.type = 'Fix';
      line.stime = pos.time + config._Delaytime;

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Fix,{{font}},25,&H{{alpha}}FFFFFF,&H{{alpha}}FFFFFF,&H{{alpha}}000000,&H{{alpha}}000000,{{_Bold}},{{_Italic}},{{_Underline}},{{_StrikeOut}},{{_ScaleX}},{{_ScaleY}},{{_Spacing}},{{_Angle}},{{_BorderStyle}},{{_Outline}},{{_Shadow}},{{_Alignment}},{{_MarginL}},{{_MarginR}},{{_MarginV}},{{_Encoding}}
Style: R2L,{{font}},25,&H{{alpha}}FFFFFF,&H{{alpha}}FFFFFF,&H{{alpha}}000000,&H{{alpha}}000000,{{_Bold}},{{_Italic}},{{_Underline}},{{_StrikeOut}},{{_ScaleX}},{{_ScaleY}},{{_Spacing}},{{_Angle}},{{_BorderStyle}},{{_Outline}},{{_Shadow}},{{_Alignment}},{{_MarginL}},{{_MarginR}},{{_MarginV}},{{_Encoding}}

粗体透明度什么的我可能什么时候开心会做个设置窗口出来,但是现在也没空。
剩下诸如是不是有下划线这样的功能,反正也没什么用,就算了。
字符编码那个UTF8会比较方便,其他的字符编码会很麻烦,所以也不考虑。

lfjs commented

ok=)