请大大帮帮忙,我建了一个脚本,遇到一个问题

问题详情

2: attempt to call a nil value (field 'GetSelectedTracks')
这个错误意味着 reaper.GetSelectedTracks(0) 返回了一个空值,也就是说,GetSelectedTracks 函数并不存在或者没有被正确加载。

做过的尝试以下是代码详情

-- 获取选中的轨道
local selectedTracks = reaper.GetSelectedTracks(0)

-- 检查是否有选中的轨道
if selectedTracks then
-- 遍历每个选中的轨道
for i = 1, #selectedTracks do
local track = selectedTracks[i]

    -- 获取轨道上的第一个音频块
    local itemCount = reaper.CountTrackMediaItems(track)
    if itemCount > 0 then
        local firstAudioItem = reaper.GetTrackMediaItem(track, 0)
        
        -- 将音频块的起始时间设置为光标处的时间
        reaper.SetMediaItemInfo_Value(firstAudioItem, "D_POSITION", reaper.GetCursorPosition())
    else
        reaper.ShowMessageBox("轨道上没有音频块!", "提示", 0)
    end
end

-- 更新 Reaper 的显示
reaper.UpdateArrange()

else
reaper.ShowMessageBox("没有选中的轨道!", "提示", 0)
end

-- 初始化一个用于存储选中轨道的表(数组)
local selectedTracks = {}

-- 获取当前项目中选中的轨道数量
local count = reaper.CountSelectedTracks(0)

-- 遍历所有选中的轨道并存储到表中
for i = 0, count-1 do
local track = reaper.GetSelectedTrack(0, i)
table.insert(selectedTracks, track)
end

-- 检查是否有选中的轨道
if #selectedTracks > 0 then
-- 遍历每个选中的轨道
for i, track in ipairs(selectedTracks) do
-- 获取轨道上的第一个音频块
local itemCount = reaper.CountTrackMediaItems(track)
if itemCount > 0 then
local firstAudioItem = reaper.GetTrackMediaItem(track, 0)

        -- 将音频块的起始时间设置为光标处的时间
        reaper.SetMediaItemInfo_Value(firstAudioItem, "D_POSITION", reaper.GetCursorPosition())
    else
        reaper.ShowMessageBox("轨道上没有音频块!", "提示", 0)
    end
end

-- 更新 Reaper 的显示
reaper.UpdateArrange()

else
reaper.ShowMessageBox("没有选中的轨道!", "提示", 0)
end

尝试过没有用,还是这个问题

MediaTrack reaper.GetSelectedTrack(ReaProject proj, integer seltrackidx)
Get a selected track from a project (proj=0 for active project) by selected track count (zero-based).

好好看文档,GetSelectedTrack 有两个输入参数,你只给了一个

如果是拿 chatgpt 来生成脚本,充分理解每一行的用处,并养成看文档的习惯。

谢谢大大

谢谢大大,我去试试