foobar2000算法总结

未解

function StrFmt(alignH, alignV, trim, flag) {
    return ((alignH << 28) | (alignV << 24) | (trim << 20) | flag);
}

时间戳转时分秒字符串

function TimeFmt(t) {
    if (t < 0) return "00:00:00";
    var zpad = function(n) {
            var str = n.toString();
            return (str.length < 2) ? "0" + str : str;
        }
    var h = Math.floor(t / 3600);
    t -= h * 3600;
    m = Math.floor(t / 60);
    t -= m * 60, s = Math.floor(t);
    return zpad(h) + ":" + zpad(m) + ":" + zpad(s);
}

格式化HMS

function Format_hms(t) {
    if (t=="?") return "00:00:00";
    var hms;
    if (t) {
        switch (t.length) {
        case 4:
            hms = "00:0" + t;
            break;
        case 5:
            hms = "00:" + t;
            break;
        case 7:
            hms = "0" + t;
            break;
        default:
            hms = t;
            break;
        }
        return hms;
    } else {
        return "00:00:00";
    }
}

计算音量大小与位置关系算法,未解

function pos2vol(p) {
    return (50 * Math.log(0.99 * (p / 100) + 0.01) / Math.log(10));
}


function vol2pos(v) {
    return Math.round(((Math.pow(10, v / 50) - 0.01) / 0.99) * 100);
}

windows实现互斥单选按钮:

var MF_STRING = 0x00000000;
var MF_DISABLED = 0x00000002;
var PBOTips = new Array("默认", "重复(列表)", "重复(音轨)", "随机", "乱序(音轨)", "乱序(专辑)", "乱序(目录)");
PBO_Menu = function(x, y) {
    var PBOmenu = window.CreatePopupMenu();
    var menu_item_count = 0;
    for (var i = 0; i < PBOTips.length; i++)
    PBOmenu.AppendMenuItem(MF_STRING, ++menu_item_count, PBOTips[i]);
    PBOmenu.CheckMenuRadioItem(1, menu_item_count, fb.PlayBackOrder + 1);
    var ret = 0;
    ret = PBOmenu.TrackPopupMenu(x, y, 0x0020);
    if (ret) {
        switch (ret) {
        default:
            fb.PlaybackOrder = ret - 1;
            PBOmenu.CheckMenuRadioItem(1, menu_item_count, ret);
            break;
        }
    }
    PBOmenu.Dispose();
}

????CheckMenuRadioItem方法不太懂

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 10,056评论 0 11
  • [超英]群星不曾安眠(1)午后 当初莱斯特一家搬进这间公寓的时候,夫妇二人就“门口的脚垫应该用什么图案”展开过一番...
    阿芙伽德萝阅读 1,781评论 0 1
  • 第12天#玩卡不卡·每日一抽# 21天了解自己改变状态: 1、直觉他叫什么名字?阿木 2、他几岁了?四十八 3、他...
    若水_f809阅读 1,118评论 0 0
  • 那一年,驴还很年轻,磨坊主对他说:“好好干上二十年,等你老了,就搁大太阳底下躺着,光吃豆子不干活。”这是驴想都不敢...
    Silvia15阅读 4,402评论 4 2