想把这个脚本改成自动确认,怎么做呢?

问题详情

如何不用手动输入,而是把它直接写入脚本,可以自定义修改轨道名,一键操作

做过的尝试

在脚本里改了名字,可以不用输入,但是还需要确定,怎么让它自动确定呢?

local NameTrack = 1
             -- = 1 Показать окно для ввода имени трека,
             --  Или введите имя трека
             --  Например: NameTrack = "Drums"



--===========================================================================
--//////////////////////////////   SCRIPT   \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
--===========================================================================



-----------------------------------------------------------------------------
local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
-----------------------------------------------------------------------------



local name_script = [[Move selected items to a track with name "n"]]
local CountSelItem = reaper.CountSelectedMediaItems( 0 )
if CountSelItem == 0 then no_undo() return end

local retval, retvals_csv,desttr,par_ID,Undo
if not NameTrack then NameTrack = 1 end

if NameTrack == 1 then
      retval, retvals_csv = reaper.GetUserInputs( "Move selected items to a track with name 'n'", 1,
                                    "                Name track:,extrawidth=40", "旁白" )
    if retval == false then no_undo() return end
else
    retvals_csv = NameTrack
end

local CountTrack = reaper.CountTracks( 0 )
for i = 1,CountTrack do
    local track = reaper.GetTrack(0,i-1)
    local retval, stringNeedBig = reaper.GetSetMediaTrackInfo_String( track, "P_NAME", "", 0 )
    if stringNeedBig == retvals_csv then
        par_ID =  reaper.CSurf_TrackToID( track, true )
        desttr = reaper.CSurf_TrackFromID( par_ID, true )
        break
    end
end


if par_ID and desttr then
    for i = 1,CountTrack do
        local track = reaper.GetTrack(0,i-1)
        local CountTrItem = reaper.CountTrackMediaItems( track )
        for i = CountTrItem-1,0,-1 do
            local item = reaper.GetTrackMediaItem( track, i )
            local sel = reaper.GetMediaItemInfo_Value( item, "B_UISEL" )
            if sel == 1 then
                reaper.MoveMediaItemToTrack( item,desttr)
                Undo = 1
            end
        end
    end
end

if Undo == 1 then
    reaper.Undo_BeginBlock()
    reaper.Undo_EndBlock(name_script,1)
else
    no_undo()
end

reaper.UpdateArrange()

把第一行的文字改成目标轨道名字

1 个赞

感谢Z佬的帮助