R flexdashboard: как вставить видео с реактивным значением в путь к файлу? - PullRequest
1 голос
/ 17 января 2020

У меня есть flexdashboard , и мне нужно встроить несколько видео.

С путем к файлу stati c это довольно просто:

tags$video(
    src = "sample.mp4",
    type = "video/mp4",
    width = 1280, height = 720,
    controls = "controls"
)

Но я не могу понять, как встроить видео с путем к файлу, который включает значение ввода / реактивности. Это не работает:

renderUI({
    req(rv())

    tags$video(
        src = rv(),
        type = "video/mp4",
        width = 1280, height = 720,
        controls = "controls"
    )
})

Вот файл Rmd с обоими примерами:

---
title: "Test"
output:
  flexdashboard::flex_dashboard:
runtime: shiny
---

```{r setup}
library(flexdashboard)
library(shiny)
```

Column
------

### Static
```{r}
tags$video(
    src = "sample.mp4",
    type = "video/mp4",
    width = 1280, height = 720,
    controls = "controls"
)
```

Column
------
```{r}
rv <- reactive({ "sample.mp4" })
```

### Reactive
```{r}
renderUI({
    req(rv())

    tags$video(
        src = rv(),
        type = "video/mp4",
        width = 1280, height = 720,
        controls = "controls"
    )
})
```

После проверки блок "stati c" генерирует этот HTML:

<video src="file5450741f3ada_files/sample.mp4" type="video/mp4" width="1280" height="720" controls="controls"></video>

Где "Dynami c" порция это:

<video src="sample.mp4" type="video/mp4" width="1280" height="720" controls="controls"></video>

Похоже, tags$video помещает файл во временную папку, что не происходит, когда src аргумент является реактивным значением и / или внутри renderUI.

Любые советы?

...