Day13 用磁碟机播放唱片

上次在研究 CC: Tweaked 电脑磁碟机的时候
在 /rom/apis/disk.lua 发现一个有趣的函数

function playAudio(name)
    if isDrive(name) then
        peripheral.call(name, "playAudio")
    end
end

这不就是播放音乐吗?
也就是说磁碟机也可以播放音乐
先来看看不依靠模组,原本就支援的播放唱片
只要对着唱片机「使用」唱片即可
minecraft 播放唱片

而如果用磁碟机,则一样要把唱片放入磁碟机里头
minecraft cc: tweaked disk playaudio

接着用 Lua 写这一行即可
输入为 'left' 是因为磁碟机在我电脑左方
其他的方位则是 'right', 'top', 'bottom', 'front', 'back'
就看你磁碟机怎麽安装

disk.playAudio('left')

另外,我还在 /rom/programs/fun 找到了一个有趣的 script
dj.lua

local sCommand = tArgs[1]
if sCommand == "stop" then
    -- Stop audio
    disk.stopAudio()

elseif sCommand == "play" or sCommand == nil then
    -- Play audio
    local sName = tArgs[2]
    if sName == nil then
        -- No disc specified, pick one at random
        local tNames = {}
        for _, sName in ipairs(peripheral.getNames()) do
            if disk.isPresent(sName) and disk.hasAudio(sName) then
                table.insert(tNames, sName)
            end
        end
        if #tNames == 0 then
            print("No Music Discs in attached disk drives")
            return
        end
        sName = tNames[math.random(1, #tNames)]
    end

    -- Play the disc
    if disk.isPresent(sName) and disk.hasAudio(sName) then
        print("Playing " .. disk.getAudioTitle(sName))
        disk.playAudio(sName)
    else
        print("No Music Disc in disk drive: " .. sName)
        return
    end

else
    printUsage()

end

看起来 dj 的用法就是以下几种,大家可以试试
停止播放唱片

dj stop

播放左边磁碟机的唱片

dj play left

自动从所有的唱片中随机挑选播放

dj play

因为是 Command line 的方式,而且还会自动挑选唱片,比起我们自己写 Lua 是有稍微方便一点~

peripheral.getNames() 是取得所有电脑外接的设备位置
例如 { 'left', 'top' }
disk.isPresent(sName) 则是判断该位置的磁碟机内是否有东西

磁碟机的研究就到这里,下回我会开始让电脑外接大萤幕!
敬请期待~


<<:  虹语岚访仲夏夜-14(打杂的Allen篇)

>>:  [13th][Day18] Unmarshal

[day-9] 认识Python的基本资料型别!

认识Python的基本资料型别吧!   每个程序语言都有各自独特的资料型别,让我们快速认识Pytho...

Day5 - 2D渲染环境基础篇 II - 成为Canvas Ninja ~ 理解2D渲染的精髓

何谓路径? 要介绍路径绘图相关的api之前,必须要先理解什麽叫做『路径』。 有学过电脑绘图软件,例如...

Day 4— 自动化回信机(1) 前置作业

今天开始就要来利用专题了解 GAS 的各项功能罗~ 说到要能优雅、或是狼狈的…总之要能够享受下午茶,...

[DAY 12] 幸福时光~手作甜汤

幸福时光~手作甜汤 地点:台南市新营区民权路118号 时间:14:00~20:30 这家店可以看作是...

每个人都该学的30个Python技巧|技巧 9:快速建立数列—range函式(字幕、衬乐、练习)

昨天的巢状判断式有没有成功扰乱你呢?不管懂不懂,都要记得常常去复习哦,这样才会有深刻的印象!(๑•̀...