我正在尝试将视频嵌入Shiny应用程序中,并具有一个动作按钮,当按下该按钮时,该按钮会记录视频的播放时间。出于这个问题的目的,我真的只想在屏幕上粘贴/渲染文本播放时间。我正在使用下面的代码来获取视频,我已经看到了完全用HTML来完成此操作的方法,但似乎无法使其在Shiny中工作。
library(shiny)
library(tidyverse)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
tags$video(src = "my_video.mp4", type = "viedo/mp4", width = "500px", height = "300px", controls = "controls"),
actionButton(inputId = "get_time", label = "Get Time"),
textOutput("currentTime")
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
这是一种方法。
library(shiny)
js <-
"Shiny.setInputValue('time', document.getElementById('myVideo').currentTime);"
ui <- fluidPage(
tags$video(id = "myVideo", src = "my_video.mp4", type = "video/mp4",
width = "500px", height = "300px", controls = "controls"),
actionButton(inputId = "get_time", label = "Get Time", onclick = js),
textOutput("currentTime")
)
server <- function(input, output, session) {
output[["currentTime"]] <- renderText({
input[["time"]]
})
}
shinyApp(ui, server)