Module:LrcPlayer
跳到导航
跳到搜索
本模块用于将 Template:LrcPlayer 的语法转换到 Sm2Shim 的JSON播放列表并输出播放器控件。
emitModernSoundManagerPlaylist 方法
仅输出JSON播放列表的字符串表示,用于调试模块行为。
convertLegacyLrcPlayerSyntax 方法
输出LRC播放器。需要 Sm2Shim 扩展为 1800.201.531.5012 或更高版本。
local func = {}
function func.emitModernSoundManagerPlaylist ( frame )
-- Parameters: audio, lrc, title, artist, album, autoplay, loop
local audioUrl = frame.args[1]
local lrcUrl = frame.args[2]
local title = frame.args[3]
local artist = frame.args[4]
local album = frame.args[5]
local autoplay = frame.args[6]
local loop = frame.args[7]
local function isempty(s)
return s == nil or s == ''
end
-- Keep compatibility with previous definitions
local loopEnabled = not isempty(loop);
local autoplayEnabled = not isempty(autoplay);
local playlistItemEntity = {
audioFileUrl = audioUrl,
lrcFileUrl = lrcUrl,
title = title,
artist = artist,
album = album,
isExplicit = false
}
local playlist = {
schemaVersion = 1,
loop = loopEnabled,
autoPlay = autoplayEnabled,
playlist = {
playlistItemEntity
}
}
return mw.text.jsonEncode(playlist)
end
function func.convertLegacyLrcPlayerSyntax( frame )
-- Requires Sm2Shim 1800.201.531.5012 or higher version --
return frame:extensionTag('modernsoundmanager', func.emitModernSoundManagerPlaylist(frame), {})
end
return func