1

我正在尝试截取我闪亮的应用程序的屏幕截图。

当我只有情节时,一切都很好。但是当我添加视频时,它就无法正常工作。我的情节还可以,但视频区只是空的。

这是我的代码:

library(shiny)
library(tidyverse)
library(shinyscreenshot)

ui <- fluidPage(
  actionButton("go","Go"),
div(
  plotOutput("plot1"),
  tags$iframe(id = "video",width="560", height="315", src="https://www.youtube.com/embed/T1-k7VYwsHg", frameborder="0", allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",
              allowfullscreen=NA),
  plotOutput("plot2")
)


)

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

  output$plot1 <- renderPlot({

    ggplot(mtcars, aes(mpg,cyl)) + geom_point()

  })
  output$plot2 <- renderPlot({

    ggplot(mtcars, aes(mpg,cyl)) + geom_point()

  })

observeEvent(input$go, {
  shinyscreenshot::screenshot(id = "video")
  })
}

shinyApp(ui, server)

有什么帮助吗?

是因为iframe吗?

我该如何解决这个问题?

非常感谢

4

1 回答 1

0

shinyscreenshot基于 html2canvas JavaScript 库。

这里提到了 html2canvas 的限制之一:

脚本使用的所有图像都需要位于同一源下,以便无需代理的帮助即可读取它们 。

此限制适用于 iframe,除非您愿意设置代理服务器。

但是,一般来说,视频似乎是一个问题

您可以尝试截屏另一个隐藏的 html 标签,而不是按照此处的建议。

于 2022-01-18T07:39:16.347 回答