上次在研究 CC: Tweaked 電腦磁碟機的時候
在 /rom/apis/disk.lua 發現一個有趣的函數
function playAudio(name)
if isDrive(name) then
peripheral.call(name, "playAudio")
end
end
這不就是播放音樂嗎?
也就是說磁碟機也可以播放音樂
先來看看不依靠模組,原本就支援的播放唱片
只要對著唱片機「使用」唱片即可
而如果用磁碟機,則一樣要把唱片放入磁碟機裡頭
接著用 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)
則是判斷該位置的磁碟機內是否有東西
磁碟機的研究就到這裡,下回我會開始讓電腦外接大螢幕!
敬請期待~