音乐文件不播放闪亮

Music files do not play in shiny

目标

用户在闪亮的应用程序上播放音乐

代码

我正在尝试使用 Shiny howlerjs extension 让用户在闪亮的应用程序上播放音乐。以下是包回购协议中运行良好的示例:

library(shiny)
library(howler)

audio_files_dir <- system.file( "examples/_audio", package = "howler")
addResourcePath("sample_audio", audio_files_dir)
audio_files <- file.path("sample_audio", list.files(audio_files_dir, ".mp3$"))


ui <- fluidPage(
  title = "howler Example",
  useHowlerJS(),
  
  h3("Howler Example"),
  howlerPlayer("sound", audio_files),
  howlerSeekSlider("sound"),
  howlerPreviousButton("sound"),
  howlerBackButton("sound"),
  howlerPlayPauseButton("sound"),
  howlerForwardButton("sound"),
  howlerNextButton("sound"),
  howlerVolumeSlider("sound"),
  tags$br(),
  tags$br(),
  tags$p(
    "Track Name:",
    textOutput("sound_track", container = tags$strong, inline = TRUE)
  ),
  tags$p(
    "Currently playing:",
    textOutput("sound_playing", container = tags$strong, inline = TRUE)
  ),
  tags$p(
    "Duration:",
    textOutput("sound_seek", container = tags$strong, inline = TRUE),
    "/",
    textOutput("sound_duration", container = tags$strong, inline = TRUE)
  )
)

server <- function(input, output, session) {
  output$sound_playing <- renderText({
    if (isTRUE(input$sound_playing)) "Yes" else "No"
  })
  
  output$sound_duration <- renderText({
    sprintf(
      "%02d:%02.0f",
      input$sound_duration %/% 60,
      input$sound_duration %% 60
    )
  })
  
  output$sound_seek <- renderText({
    sprintf(
      "%02d:%02.0f",
      input$sound_seek %/% 60,
      input$sound_seek %% 60
    )
  })
  
  output$sound_track <- renderText({
    req(input$sound_track)
    sub("\.\w+$", "", basename(input$sound_track))
  })
}

shinyApp(ui, server)

audio_files 包含软件包作者提供的示例文件:

> file.path("sample_audio", list.files(audio_files_dir, ".mp3$"))
[1] "sample_audio/80s_vibe.mp3"    "sample_audio/rave_digger.mp3"
[3] "sample_audio/running_out.mp3"  

问题

我只做了 1 处更改。我将 audio_files 代码替换为我的音频文件的路径,如下所示:

audio_files <- list.files(path = "Music/", pattern= ".mp3$", full.names = TRUE)

> list.files(path = "Music/", pattern= ".mp3$", full.names = TRUE)
[1] "Music/l1.mp3" "Music/l2.mp3" "Music/l3.mp3"

其他一切都保持不变。该应用程序打开时没有任何 error/warning。但是新的音乐文件不播放。两个问题:

  1. 我在上面的代码中做错了什么,我的本地音频文件不在应用程序中播放但在外部播放?
  2. 请推荐其他用于在 shiny 中选择音乐的用户界面。

为了使用新目录中的音乐,您还需要将addResourcePath更改为相关路径。在这种情况下,如果您使用 addResourcePath("Music", "Music") 这应该足以让它工作。