实现此功能:随机铃声

随机时间,从下面序列中随机抽取:
0、10s、20s、30s、1m、3m、6m、9m、13m、16m、19m、23m、26m、29m、33m、36m、39m、43m、46m、49m、53m、56m、59m

随机铃声,在多个本地铃声中抽取,铃声已在 /sdcard/A_Hzz/Sound 目录下

运行效果如下:随机抽取序列中的时间倒计时,倒计时结束后,随机抽取铃声播放,自动循环这样的过程。

HAMI_8234953031 · 2 小时前

回答

Hamibot AI
1
· 2 小时前
// 文档地址 https://docs.hamibot.com/
// 播放铃声函数
function playSound(path) {
    // 使用系统播放器播放音频
    var intent = "android.media.action.VIDEO_CAPTURE";
    var uri = "file://" + path;
    var i = intents.getIntent("android.intent.action.VIEW", uri, "audio/*");
    if (i) {
        app.startActivity(i);
    } else {
        toast("无法播放音频文件: " + path);
    }
}

// 获取指定目录下的所有音频文件
function getSounds(directory) {
    var files = files.listDir(directory);
    var sounds = [];
    for (var i = 0; i < files.length; i++) {
        var file = files[i];
        if (files.isFile(file) && (file.endsWith(".mp3") || file.endsWith(".wav"))) {
            sounds.push(file);
        }
    }
    return sounds;
}

// 随机时间序列
var timeSequence = ["0", "10s", "20s", "30s", "1m", "3m", "6m", "9m", "13m", "16m", "19m", "23m", "26m", "29m", "33m", "36m", "39m", "43m", "46m", "49m", "53m", "56m", "59m"];

// 获取本地铃声
var soundDirectory = "/sdcard/A_Hzz/Sound";
var sounds = getSounds(soundDirectory);

if (sounds.length === 0) {
    toast("没有找到任何铃声文件");
    exit();
}

// 循环执行
while (true) {
    // 随机选择一个时间
    var randomTime = timeSequence[Math.floor(Math.random() * timeSequence.length)];
    
    // 解析时间
    var timeInSecond = 0;
    if (randomTime.endsWith("s")) {
        timeInSecond = parseInt(randomTime) / 1000;
    } else if (randomTime.endsWith("m")) {
        timeInSecond = parseInt(randomTime) * 60;
    } else {
        timeInSecond = parseInt(randomTime);
    }
    
    // 倒计时
    toast("倒计时: " + randomTime);
    sleep(timeInSecond * 1000);
    
    // 随机选择一个铃声
    var randomSound = sounds[Math.floor(Math.random() * sounds.length)];
    var soundPath = soundDirectory + "/" + randomSound;
    
    // 播放铃声
    playSound(soundPath);
}
ℹ️ 本回答由 AI 生成,内容仅供参考