2

我想要一个闪亮的应用程序在反应事件后播放声音。

我已经知道在 R 脚本末尾的解决方案

在闪亮我试过:

library(shiny)
library(beepr)

ui <- fluidPage(
    tags$head(tags$script(src = "message-handler.js")),
    actionButton("dobeep", "Play sound")
)

server <- function(input, output, session) {
    observeEvent(input$dobeep, {
        #Beeps on local machine/server
        beepr::beep()

        #Doesn't beep on client
        insertUI(selector = "#dobeep",
                 where = "afterEnd",
                 ui = tags$audio(src = "beep.wav", type = "audio/wav", autoplay = T, controls = NA, style="display:none;")
        )
    })
}

shinyApp(ui, server)

我放在beep.wav目录里app.R
在本地机器上,我听到beepr::beep(),但我没有听到来自客户端的音频标签。
在客户端/服务器模式下,我什么也没听到。
在这两种情况下,音频标签似乎都不起作用。
谢谢你的帮助。

4

1 回答 1

2

beep.wav文件应/www位于与闪亮应用程序位于同一目录的文件夹中,音频标签才能正常工作,请参阅以下帖子

这有效:

library(shiny)
library(beepr)

ui <- fluidPage(
    tags$head(tags$script(src = "message-handler.js")),
    actionButton("dobeep", "Play sound")
)

server <- function(input, output, session) {
    observeEvent(input$dobeep, {
        insertUI(selector = "#dobeep",
                 where = "afterEnd",
                 # beep.wav should be in /www of the shiny app
                 ui = tags$audio(src = "beep.wav", type = "audio/wav", autoplay = T, controls = NA, style="display:none;")
        )
    })
}

shinyApp(ui, server)
于 2020-06-14T07:58:26.110 回答