UpdateSliderInput默认为';暂停';值更改时

UpdateSliderInput默认为';暂停';值更改时,r,shiny,slider,R,Shiny,Slider,我已经创建了一个闪亮的应用程序,它运行得非常好。但我唯一的问题是每次速度或间隔大小更改时,滑块都会“暂停”。 相反,如果我使用操作按钮,则动画将继续 我想让用户更好地控制动画,因此我使用了滑块/数值输入。但是我希望sliderInput接受用户定义的值,并开始播放带有新值的动画。就像YouTube上的速度控制 这是我的代码,来自更大版本的代码示例: library(shiny) minimum.slider <- as.POSIXct("2016-08-12 00:00:00", fo

我已经创建了一个
闪亮的应用程序
,它运行得非常好。但我唯一的问题是每次
速度
间隔
大小更改时,
滑块
都会“暂停”。 相反,如果我使用
操作按钮
,则
动画
将继续

我想让用户更好地控制
动画
,因此我使用了
滑块/数值输入
。但是我希望
sliderInput
接受用户定义的值,并开始播放带有新值的
动画。就像YouTube上的速度控制

这是我的代码,来自更大版本的代码示例:

library(shiny)

minimum.slider <- as.POSIXct("2016-08-12  00:00:00", format = "%Y-%m-%d %H:%M:%S")
maximum.slider <- as.POSIXct("2016-08-30 05:29:00 UTC", format = "%Y-%m-%d %H:%M:%S")

ui <- fluidPage(
  titlePanel("tester"),
  sidebarLayout(
    sidebarPanel(id="sidebar",
                 uiOutput("slider"),
                 sliderInput("speed",
                             label = div(style='width:300px;',
                                         div(style='float:left;', 'slower'),
                                         div(style='float:right;', 'faster')),
                             min = 1, 
                             max = 10, 
                             value = 6, 
                             width = '300px'),
                 sliderInput("step_size","Time Steps (minutes):",
                             min = 10, max = 60, value = 1, width = '300px'),
                 actionButton("hour_3","3 hour jump")

    ),
    mainPanel(
      h4(textOutput("selectedtime"))
    )
  )
)

server <- function(input, output,session) {

  output$slider <- renderUI({

    ## MAIN slider input into the output. The step depends on user defined 'speed' and 'interval depends on user defined 'step size'
    sliderInput("timeRange", label = "Date/Time:", width = '600px',
                min = minimum.slider,
                max = maximum.slider,
                value = minimum.slider,
                step = (60*input$step_size),
                timezone = "UTC",
                animate = animationOptions(interval = 3200 - (input$speed*300),
                                           playButton = tags$img(height = 40,width = 45,
                                                                 src = "https://png.icons8.com/color/1600/circled-play", 
                                                                 tags$p(tags$b("PLAY"))),
                                           pauseButton = tags$img(height = 40, width = 45,
                                                                  src = "https://cdn2.iconfinder.com/data/icons/perfect-flat-icons-2/512/Pause_button_play_stop_blue.png",
                                                                  tags$p(tags$b("PAUSE"))))
    )

  })

  observeEvent(input$speed,{
    val <- input$timeRange
    updateSliderInput(session, "timeRange",value=val)
  })

  observeEvent(input$speed,{
    val <- input$timeRange
    updateSliderInput(session, "timeRange",value=val)
  })

  observeEvent(input$hour_3,{
    val <- input$timeRange + 10800
    updateSliderInput(session, "timeRange",value=val)
  })

  ##OUTPUT
  observe({
    output$selectedtime <- renderText({
      paste(format(input$timeRange))
    })

  })
}
shinyApp(ui,server)
库(闪亮)
最小滑动条