我正在研究一个项目,试图动态渲染音频。也就是说,我可以单击一个按钮并播放选定的本地音频。
我已阅读this post,并尝试过zedii的把戏。问题仍然存在。
好吧,我构建了如下所示的测试应用。
library(shiny)
# test set ----
ui <- fluidPage(
textInput('my_music','path:',value="questionF"),
actionButton("ok", "Okay"),
uiOutput('my_audio')
# tags$audio(src = "questionF.mp3", type = "audio/mp3")
)
get_audio_tag <- function(filename) {
tags$audio(src = filename,
type = "audio/mp3",
controls = "controls")
}
server <- function(input, output, session){
# Render the audio player
observeEvent(input$ok, {
wav_name = input$my_music
# output$my_audio <-renderUI(get_audio_tag("questionF.mp3"))
output$my_audio <-renderUI(get_audio_tag(wav_name))
})
}
shinyApp(ui = ui, server = server)
当我单击按钮时,第一首歌听起来还不错。但是以下文件似乎很难加载,因为随着Rstudio使用的内存的增加,我的计算机将冻结。
任何想法都会受到赞赏。
更新:
我在不同的浏览器上尝试过。这些代码在Chrome上将失败,但在Microsoft Edge上可以正常工作。 看起来像一个缓存问题。 所以现在我的问题是如何使用Shiny / R使代码在每个平台上都能工作?
我的代码可在除Chrome之外的大多数浏览器上使用。我认为这更像是Chrome的问题。