HTML(或 R Shiny)音频缓存
HTML (or R Shiny) Audio Caching
弄清楚 后,我创建了一个闪亮的服务器,它根据反应输入动态创建 wav 文件。然而,第一个 wav 文件被缓存,尽管文件发生了变化,甚至重命名了文件,只有第一个 wav 被播放,直到整个页面刷新。
通过基于 HTML 的 Shiny 应用程序更改后如何播放更改后的 wav 文件?
我知道这个问题已经在几个地方为 HTML 开发人员提出(并解决)了,使用 javascript or Jquery/php or a server-side solution,但我还没有弄清楚如何让这些工作正常进行与闪亮。
由 BSU 教授解决。冠军。在脚本的顶部,我们有一些名称处理函数,用于保持 wav 名称的唯一性,然后是一个获取适当音频标签的函数:
get_audio_tag<-function(filename){tags$audio(src = filename,
type ="audio/wav", controls = NA)}
wave_name<-function(n,p1,f1,p2,f2,p3,f3,l){
paste0( paste("sound","num",n, "w1",p1,f1,"w2", p2,f2,"w3",p3,f3,"lev",
gsub("\.","_",l), sep="_"), ".wav")
}
诀窍是变量 wavname
在其中一个输出函数内动态更新,因此每次触摸反应性输入时,wav 文件都会更改名称。然后 get_audio_tag
函数也在输出函数内部运行,以便进行更新。输出函数的代码如下:
wname<-wave_name( input$radio,
input$frequency1,input$form1,
input$frequency2,input$form2,
input$frequency3,input$form3,
input$level)
output$audiotag<-renderUI(get_audio_tag("tempwav.wav")) #starting wave file
output$audiotag<-renderUI(get_audio_tag(wavname))
起始 tempwav 是必需的,因为音频标签在反应元件发送其第一个输出之前加载到 HTML 中。
弄清楚
通过基于 HTML 的 Shiny 应用程序更改后如何播放更改后的 wav 文件?
我知道这个问题已经在几个地方为 HTML 开发人员提出(并解决)了,使用 javascript or Jquery/php or a server-side solution,但我还没有弄清楚如何让这些工作正常进行与闪亮。
由 BSU 教授解决。冠军。在脚本的顶部,我们有一些名称处理函数,用于保持 wav 名称的唯一性,然后是一个获取适当音频标签的函数:
get_audio_tag<-function(filename){tags$audio(src = filename,
type ="audio/wav", controls = NA)}
wave_name<-function(n,p1,f1,p2,f2,p3,f3,l){
paste0( paste("sound","num",n, "w1",p1,f1,"w2", p2,f2,"w3",p3,f3,"lev",
gsub("\.","_",l), sep="_"), ".wav")
}
诀窍是变量 wavname
在其中一个输出函数内动态更新,因此每次触摸反应性输入时,wav 文件都会更改名称。然后 get_audio_tag
函数也在输出函数内部运行,以便进行更新。输出函数的代码如下:
wname<-wave_name( input$radio,
input$frequency1,input$form1,
input$frequency2,input$form2,
input$frequency3,input$form3,
input$level)
output$audiotag<-renderUI(get_audio_tag("tempwav.wav")) #starting wave file
output$audiotag<-renderUI(get_audio_tag(wavname))
起始 tempwav 是必需的,因为音频标签在反应元件发送其第一个输出之前加载到 HTML 中。