检索嵌入在R Shiny应用程序中的视频的播放时间

问题描述 投票:0回答:1

我正在尝试将视频嵌入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)
html r shiny shinyjs
1个回答
0
投票

这是一种方法。

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)
© www.soinside.com 2019 - 2024. All rights reserved.