修理昨天foobar歌曲信息面板bug

本文记录了作者修复Foobar2000播放器界面显示问题的过程,包括编码信息、采样率、声道显示等五个主要Bug,并详细介绍了每个Bug的原因及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    昨天本来说凑合用,但是处女座就是追求完美,所以中午不甘心还是认真看了代码改好了:

581245826907669833.jpg 

------------------------------------------------------------------

昨天没改好之前:

 437130638834793859.jpg

bug1:编码信息总是显示“CBR”;

bug2:采样率不对;

bug3:声道总显示“单声道”;

bug4:文件大小只有个位数;

bug5:背景和字体颜色不对。

---------------------------------------

bug1是最头痛的,一开始根本看不懂这些代码,后来看自带的帮助才搞清楚。

bug1问题是使用了%__extrainfo%这个函数,这个函数可以在foobar 8.x版本中使用,但在foobar 9中是没有这个函数的,改为%codec_profile%就能正常显示了

$if($strcmp(1,$get(codec)),
$get(info)编码:$get(text) %__codec%)

$if($strcmp(1,$get(extra_info)),
$get(text)'['
%codec_profile%']')
$char(10)

-----------------------

bug2,好解决,在$puts(samplerate_short,1)中设置为$puts(samplerate_short,0),也就是不使用samplerate_short变量,下面具体代码没研究,反正上面有个$puts(samplerate,1)的变量已经能够提供采样了。

bug3,这个可以参考foobar状态栏是怎么显示“立体声”的。

bug4,原来的代码是:

$puts(ModSize,$muldiv($mod(%_filesize%,1048576),100,1048576))
$if($strcmp(1,$get(filesize)),$get(info)文件大小: $get(text)$div(%_filesize%,1048576).

$ifgreater($get(ModSize),99,99,$num($get(ModSize),2)) MB$char(10))

其实只要去掉$num()这个函数就ok了。估计是编写函数时忘了。

不过这个方法可以借鉴,用div取得整数部分,取两位小数,就用余数放大100倍再除。

最后可以改成这样:

$puts(ModSize,$muldiv($mod(%_filesize%,1048576),100,1048576))
$if($strcmp(1,$get(filesize)),$get(info)文件大小: $get(text)$div(%_filesize%,1048576).

$ifgreater($get(ModSize),99,99,$get(ModSize)) MB$char(10))

bug5,改改颜色代码就ok了

$puts(headline,00ffff)
$puts(info,ff8000)
//4C4C4C
$puts(text,00ff00)
$puts(grayed,FF8000)
$puts(playing_mode,00ffff)
$puts(add,888888)
// Colors for progressbar
$puts(progress_color1,8080ff)
$puts(progress_color2,ff8080))

改好之后就比较完美了...

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值